运行调试前端项目之ts

news2025/1/22 14:45:22

本文分四个部分:

  • 直接node或ts-node运行ts
  • 通过package.json文件运行ts
  • ts翻译为js后运行js
  • 在ide中运行和调试ts
    — vscode中,配置launch.json文件,来调试ts,与js调试一致
    — idea、webstorm中,安装“run configuration for typescript”后,打开ts文件,右键运行或者调试即可

一、前置条件

  • 安装node
  • js文件
  • 安装typescript
  • 安装ts-node
npm install --global typescript
npm install --global ts-node

注意:
如果发生编译错误,尝试在项目文件夹中内部安装typescript和ts-node,不需要带–global

编写ts简单样例

文件名index.ts

console.log("hello ts")
console.log("hello ts")
console.log("hello ts")
console.log("hello ts")
console.log("hello ts")

二、直接node或者ts-node运行ts

进入文件所在目录,运行如下命令:

node index.ts
或者
ts-node index.ts

效果如下:
在这里插入图片描述

三、通过package.json文件进行ts运行管理

  • 通过 package.json文件管理ts脚本运行

1、生成 package.json文件

进入项目文件根目录,运行如下命令:

npm init

2、配置 package.json文件

在配置文件中,增加启动脚本

"start": "node ./index.ts"
或者
"start": "ts-node ./index.ts"

整体效果如下:
在这里插入图片描述

运行ts脚本

在配置文件所在目录,运行如下命令:

npm run start

效果如下:
在这里插入图片描述

四、ts翻译为js再运行

相比较js运行,ts这种运行方式是其独有的,运行如下命令进行翻译,会在ts文件的所在的当前目录生成相应的js文件:

tsc index.ts

五、IDE中运行调试ts

vscode配置launch.json文件仅能调试ts文件,运行ts文件参考node运行和package.json运行两种方案;idea中打开ts文件暂时不会自动配置,安装“run configuration for typescript”插件后可以自动配置,如下图,可以运行,也可以调试,很方便。

  • vscode中,配置launch.json文件,来调试ts
  • idea、webstorm中,打开ts文件,右键运行或者调试即可

1、vscode中进行ts文件调试

配置项如下:

        {
            "name": "debugCurrentTs",
            "type": "node",
            "request": "launch",
            "program": "${file}"
        }

注意:

  • type为node,与调试html不一样,html的type为chrome
  • 需要定义program项,即程序的启动入口,html 定义的是file项或者url项
  • 这里只能是node,不能是ts-node。为了统一,都用node就可以,对于ts文件,node命令会调用ts-node。

vscode效果如下:
在这里插入图片描述

2、vscode中进行ts项目调试

对运行在本地的项目调试,首先要打包运行项目,ts写的项目最终也是要转为js,并在chrome等浏览器中运行,但虽然跑得是js,ts与js之间村子啊源码映射,所以可以对照运行起来得服务来调试ts代码,即在ts文件打断点,程序运行到该位置会中断!!!!

1)本地编译并启动前端项目

一般流程如下,具体看package.json中得脚本配置

npm install //根据package.json,安装依赖
npm run build  //打包前端程序,src->dist
npm run serve  //本地启动服务

2)修改vscode中项目运行配置文件launch.json,增加如下配置

        {
            "name": "debugProject",
            "type": "chrome",
            "request": "launch",
            "url": "http://localhost:3000",
            "webRoot": "${workspaceFolder}/src"
        }

注意:

  • 调试单个ts文件,配置的是node 类型,外加program 来指定入口
  • 调试整个ts项目,配置的是chrome 类型,外加url地址 来指定绑定的应用,再加webRoot 来指定源码路径
  • webRoot如果选择的是dist文件夹,则生成的js文件和源码的ts或js文件加断点都会命中;webroot如果选择的是src文件夹,则只有源码的ts或js文件加断点都会命中。

效果如下:
在这里插入图片描述

3、idea中进行ts文件调试

  • 设置中安装“run configuration for typescript”插件
  • 打开要调试的ts文件
  • 在文件视图区右键,选择运行或调试

插件安装如下:
在这里插入图片描述
idea效果如下:
在这里插入图片描述

4、idea中进行ts项目调试

1)本地编译并启动前端项目

一般流程如下,具体看package.json中得脚本配置

npm install //根据package.json,安装依赖
npm run build  //打包前端程序,src->dist
npm run serve  //本地启动服务

2)增加调试配置

如下图所示,选择“javascript 调试”选项,并按照项目启动的端口号进行配置
在这里插入图片描述
效果如下:
在这里插入图片描述

五、运行调试js与ts的区别

  1. js仅需要安装node,ts在node的基础上需要安装typescript和ts-node,这点非常重要!!!!!!
  2. ts文件运行还可以用tsc命令将ts翻译为js,再用node运行js!!!
  3. ts文件在idea中,默认没有运行配置,需要安装“run configuration for typescript”插件!!!

六、前端项目调试总结

前端项目一般由ts、js和html组成,调试是调试js部分,面向浏览器的项目调试时附加到浏览器进程进行调试!!!

1) ts、js和html(只有嵌套html中的js脚本可以调试)组成的项目调试,本质是将源码通过调试程序附加到浏览器进程进行源码调试。
2)无论是调试ts还是html,最终都是调试js,浏览器只认识js。
3)虽然程序是从打包后的dist文件夹中的程序启动的,但是ts源文件中加断点仍旧会命中,因为生成的js与ts存在源码映射的关系,即在dist文件夹下生成的js文件打断点和在src文件夹下的ts文件打断点,都会命中断点。
4)项目流程: 入口html文件,一般为index.html ; 然后是js文件和ts文件,脚本入口一般为app.js 和 app.ts。
5)在vscode调试配置中,调试单个ts文件,配置的是node 类型,外加program 来指定入口;调试整个ts项目,配置的是chrome 类型,外加url地址 来指定绑定的应用,再加WebRoot 来指定源码路径。WebRoot如果选择的是dist文件夹,则生成的js文件和源码的ts或js文件加断点都会命中;webroot如果选择的是src文件夹,则只有源码的ts或js文件加断点都会命中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/408414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 超好用的富文本编辑器

Ⅰ. 前言 quillEditor 毫无疑问一款非常强大的 富文本编辑器 在 vue 中一个也非常好用 ,而且也十分轻量的; 然而如今的vue3 我们该如何使用它呢 : Ⅱ.vue3 中 安装 quillEditor ① 下载 npm install vueup/vue-quillalpha --save② 在ma…

vite首次打开界面加载慢问题/解决

写在前面 网上都说vite要比webpack快,但个人感受,默认情况下, vite项目的启动确实比webpack快,但如果某个界面是首次进入,且依赖比较多/比较复杂的话,那就会比较慢了。 这篇文章就是用来记录,关于vite慢的…

java实现文件的下载和删除(返回输出流至前端)

文章目录引言实现步骤下载文件删除文件删除目录(及目录下全部文件)实现代码测试引言 最近需求中有使用到文件的下载功能,在之前的学习过程中我没有去注重过文件处理方面的学习,所以写起来还是有点吃力,将写出的工具类…

浏览器的组成部分

什么是浏览器? Web 浏览器简称为浏览器,是一种用于访问互联网上信息的应用软件。浏览器的主要功能是从服务器检索 Web 资源并将其显示在 Web 浏览器窗口中。 Web 资源通常是 HTML 文档,但也可能是 PDF、图像、音频、视频或其他类型的内容。…

IDEA2022创建Web项目配置Tomcat(图文说明)

下面是在idea上面配置一个Tomcat的项目环境。 1.首先创建普通的一个Java项目,不要选择JavaEE 2.创建完成后按照下图所示,依次选择 File -> Add Framework Support -> Web Application -> 在WEB-INF文件夹下创建classes和lib文件夹 3.下面配置…

若依前后端分离版:增加新的登录接口,用于小程序或者APP获取token,并使用若依的验证方法

LoginController类 具体代码 /*** app 登录*/AnonymousAccessPostMapping("login")public AjaxResult login(RequestBody LoginBody loginBody) {AjaxResult ajax AjaxResult.success();// 生成令牌String token loginService.login(loginBody.getUsername(), logi…

【项目实战】登录与注册业务的实现(前端+后端+数据库)

本示例基于Vue.js和mint UI实现。 目录 一、数据库的创建 二、后端接口与数据库的连接 三、前端代码实现 1.注册页相关代码 2.注册页效果 3.登录页相关代码 4.登录页效果 四、注册登录演示 五、项目文件结构 一、数据库的创建 此处以Navicat软件进行创建,新…

刚去公司,发现node版本过高,如何将node版本降低?

我们可以安装nvm,node版本管理器来实现。 1、nvm是什么? nvm(node.js version management),是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过…

uniapp自动更新

一uniapp自动更新流程逻辑 实现检测版本更新并下载新版本:通过后台返回更新版本的版本号和当前版本号做比较,不同则提示有新版本需要更新,下载地址又后台返回 uniapp自动更新设计思路 在服务端配置一个最新的应用版本号; 并将打包…

【jQuery从入门到精通】

文章目录jQuery简介jQuery下载与安装下载版本说明优点安装jQuery核心DOM对象和Jquery包装集对象dom对象的获取获取一个不存在的dom对象jQuery对象的获取获取一个不存在的jQuery对象DOM对象与jQuery对象的转换dom对象转jQuery对象jQuery对象转dom对象jQuery选择器基础选择器层次…

【ES6丨前端进阶基础 】二,ES6rest参数,Symbol第七种数据类型

CSDN话题挑战赛第2期 参赛话题:面试宝典 目录​​​​​​​ 前言 一,函数参数的默认值设置 二,rest参数 三,扩展运算符 扩展运算符应用 1.合并数组 2.数组的克隆 3.伪数组转化成真正的数组 四,Symbol第7种数…

vue脚手架(2022年9月份nodejs16.17.0版本)

vue脚手架(2022年9月份nodejs16.17.0版本) 目录 vue脚手架(2022年9月份nodejs16.17.0版本) 下载地址 环境变量设置 全局文件夹与缓存文件夹设置 修改国内的【阿里】镜像 查看vue信息 更新npm 新增环境变量 安装vue与router 安装vue脚手架 Vue项目创建 项目层级 …

GitHub Copilot的下载使用方法(2022最新)

流程 1.去官网提交申请 填写邮件 2.等待几天收到邮件 3.点击邮件链接下载copilot-docs-main 4.打开vsCode,在扩展商店搜索下载github copilot 5.安装完成之后会在vsCode右下角提示登录github以及允许copilot 6.如果你有资格那么vsCode右下角就会出现copilot的…

Window.location用法

Window.location 详细介绍 本文翻译自 samanthaming 发表于 dev.to 的博文 原文地址 window.location Cheatsheet - DEV Community 👩‍💻👨‍💻 如果你需要获取网站的 URL 信息,那么 window.location 对象就是为你准备…

【vue2可视化开发】新手会遇到的问题——大屏自适应

简要描述 开发可视化大屏第一步,必须要考虑适配不同屏幕的问题,在网络上查看资料,总结了一个目前最适合可视化开发的自适应方案——v-scale-screen组件 1. 安装 注:vue2使用v-scale-screen1.0.0版本,vue3使用v-scal…

Qt 下拉复选框(MultiSelectComboBox)(一) 实现下拉框多选,搜索下拉框内容

文章目录本系列目录前言一、QCombobox的组成二、MultiSelectComboBox实现1. 总体实现2. QLineEdit部分3. QListWidget部分1. 搜索框部分2. 选项部分4. 对外接口定义5. 代码实现总结本系列目录 Qt 下拉复选框(MultiSelectComboBox)(一) 实现下拉框多选&a…

vue3中使用ref语法糖

自从引入组合式 API 的概念以来,一个主要的未解决的问题就是 ref 和响应式对象到底用哪个。响应式对象存在解构丢失响应性的问题,而 ref 需要到处使用 .value 则感觉很繁琐,并且在没有类型系统的帮助时很容易漏掉 .value 以上是官方原话,大概…

webrtc streamer前端页面js播放摄像头rtsp流

webrtc streamer 大致的了解了一下,就是使用js来播放rtsp视频流的一个技术。目前实现的厂家有很多,但是要收费。我这里是找了一个开源免费的项目,使用起来有一定的局限性,需要根据自己的业务自己去实现逻辑,目前我只做…

盘点那些神级uniapp插件,总有一款让你事半功倍

自从有了uniapp,各位做小程序,app是不是感觉快起飞了,如果你想快速推出自己的移动端(各平台小程序,安卓、苹果),那么uniapp还是很不错的,至少时间和研发成本可以帮你降低很多很多。 …

VUE+BPMN.JS右侧属性栏自定义功能

博主最近项目需求要实现BPMNVUE实现流程自定义, 在完成基础功能后,要求右侧属性栏内的一些属性需要根据后端返回内容进行动态渲染, 这时候,用原来的属性栏明显就不满足需求,我找到的大部分博客包括官方都是建议你根据项目需求来全部重写一个属性栏.但是项目时间紧的情况下这种…