前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VSCode使用ts-node 调试TypeScript代码

VSCode使用ts-node 调试TypeScript代码

作者头像
javascript.shop
发布于 2019-09-04 08:35:23
发布于 2019-09-04 08:35:23
12.8K01
代码可运行
举报
文章被收录于专栏:杰的记事本杰的记事本
运行总次数:1
代码可运行

TS-NODE

可以看出这些不足都来自于一个根本原因,运行之前需要编译。后来我就发现了一个很强大的工具ts-node,来看下ts-node的简介:

TypeScript execution environment and REPL for node.

简单的说就是它提供了TypeScript的运行环境,让我们免去了麻烦的编译这一步骤。最简单的例子,在注册ts-node之后,我们就可以直接加载并运行ts文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require('ts-node').register();

// 这样就能直接加载并运行 ./ts-code.ts...
require('./ts-code');

TS Config

为了断点调试,我们需要在tsconfig.json中开启sourceMap

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "noImplicitAny": true,
    "outDir": "./dist",
    "sourceMap": true
  },
  "include": [
    "src/**/*"
  ],
}

VSC Launch.json 配置

为ts-node注册一个vsc的debug任务,修改项目的launch.json文件,添加一个新的启动方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "Current TS File",
  "type": "node",
  "request": "launch",
  "args": [
    "${workspaceRoot}/src/index.ts" // 入口文件
  ],
  "runtimeArgs": [
    "--nolazy",
    "-r",
    "ts-node/register"
  ],
  "sourceMaps": true,
  "cwd": "${workspaceRoot}",
  "protocol": "inspector",
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen"
}

通过这些简单的配置,我们在vsc的debug界面中选择Debug by ts-node的任务,就可以开始愉快的调试了,修改代码之后直接重启服务即可,这里简单的介绍一些vsc debug相关的快捷键,参考

  1. F5 – 开始调试、继续执行
  2. cmd(ctrl) + shift + F5 – 重启
  3. shift + F5 – 结束调试
  4. F9 – 添加断点
  5. F10 – 单步跳过
  6. F11 – 单步调试
  7. shift + f11 – 单步跳出

调试当前打开ts文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "Current TS File",
  "type": "node",
  "request": "launch",
  "args": [
    "${relativeFile}"
  ],
  "runtimeArgs": [
    "--nolazy",
    "-r",
    "ts-node/register"
  ],
  "sourceMaps": true,
  "cwd": "${workspaceRoot}",
  "protocol": "inspector",
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen"
}

调试 mocha 测试代码

在launch.json中添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "Debug Current TS Tests File",
  "type": "node",
  "request": "launch",
  "program": "${workspaceRoot}/node_modules/.bin/_mocha",
  "args": [
    "-r",
    "ts-node/register",
    "${relativeFile}", // 调试当前文件
    "--colors",
    "-t 100000" // 设置超时时间,因为调试时执行时间较长容易触发超时
  ],
  "cwd": "${workspaceRoot}",
  "protocol": "inspector"
}

然后打开一个包含mocha单元测试的ts文件,添加断点,运行Debug Current TS Tests File即可进行断点调试。 运行项目中的所有单元测试建议在package.json中添加test脚本,比如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"scripts": {
  "test": "mocha -r ts-node/register src/**/*.spec.ts --colors"
}

然后运行npm test即可

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年8月19日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VsCode 各场景高级调试技巧,有用!
VsCode自从诞生以来,以其各自优异的特性迅速走红。尤其是对于前端开发小伙伴来说,几乎成为必不可少的开发工具。所以,熟练掌握VsCode的各自使用技巧与调试技巧会让你的日常开发工作效率倍增。本文将会以大量图文的方式,从下面几个方面详细介绍VsCode的各种技巧:
@超人
2022/04/14
1.3K0
VsCode 各场景高级调试技巧,有用!
Node.js 搭建一个 API 接口服务(实战)
因为最近打算自己搭建一个自己的博客系统,用来记录日常的学习和提升一下写作水平,所以能就打算自己搭建一下前后端项目。在网上找了下,也没有找到合适(现成)的项目,所以就打算自己动手来搭建一下。这篇文章主要描述如何搭建一个node的API接口服务。
五月君
2021/01/27
8.8K0
Node.js 搭建一个 API 接口服务(实战)
VS Code 折腾记 - (7) 内置Debug功能深入【调教angular-cli 最新版】
很多小伙伴说用了打包工具(Webpack)之后,断点调试相当痛苦; 常规的方式无非是debugger,console.log()大法; 但是,vscode这货天生支持debug功能,不用白不用,今天我就说说怎么调教angular-cli;
CRPER
2018/08/28
1.1K0
VS Code 折腾记 - (7) 内置Debug功能深入【调教angular-cli 最新版】
【Vscode】调试DotNet Core代码
Visual Studio作为宇宙第一的IDE,开发调试.net core app,无一能出其右,我们还需要去了解Visual Studio Code吗?答案是肯定。
DDGarfield
2022/06/23
1.6K0
使用vscode调试你的node应用
从一开始使用 webstorm 内置的 debug 功能, 到使用node-inspector库进行调试顺便脱离 webstorm 的笨重, 再后来 nodejs 内置了debugger 模块也可以帮助调试我们的应用.
funkyLover
2019/05/24
2.7K0
Visual Studio Code调试和发布ASP.NET Core Web应用
  上一篇文章主要讲了Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用有兴趣的同学可以去看看,今天咱们主要是要讲讲如何在VS Code中调试和发布ASP.NET Core Web应用。
追逐时光者
2023/07/21
5040
Visual Studio Code调试和发布ASP.NET Core Web应用
为你揭开 node.js 调试面纱
最近在写公司内部的一个 node 应用的时候,发现自己在 node 调试这块还是比较薄弱的,特意恶补了一下,在这里也做一下分享。
coder_koala
2019/12/06
1.2K0
为你揭开 node.js 调试面纱
Vscode笔记-24款插件
首先当然是一些语言支持的插件,这个大家根据自己的需要安装就好了。平时编写什么语言,就安装什么语言的插件。
小城故事
2023/03/10
11.3K0
Vscode笔记-24款插件
Nest.js 这么大的项目是怎么优化 ts 编译性能的?
可以看到 Nest 从 gulp 切换到了 tsc 编译,但是版本号依然是 9.1.2。
神说要有光zxg
2023/02/01
1.2K0
VSCode高效开发工作流配置指南
LayaAirIDE 2.4将VSCode剥离出去,其主要目的是让开发者编码工作流更加自由。比如 ,可以即时体验到新版本的升级,无需受限于LayaAirIDE。可以通过VSCode来灵活配置自己的开发工作流等。
Layabox Charley
2019/12/03
2.4K0
VSCode高效开发工作流配置指南
vscode调试配置和任务配置
查看右下角vscode的错误提示,如果有其他运行的插件任务阻塞,需要修改插件配置或者删除
sofu456
2022/05/06
1.3K0
vscode调试配置和任务配置
VSCode Vue 调试
以下操作和设置,在由 vue-cli 4 创建的 vue2/js 项目下进行,应该也适用于 vue-cli 4 下创建的其它类型项目,没有进一步尝试。
jgrass
2024/12/25
1570
VSCode Vue 调试
vscode调试typescript
1、记录一个插件:https://www.npmjs.com/package/ts-node
windseek
2018/12/27
9870
简化的 eggjs debug
虽然有时console.log也会用,但是我可能会使用一些更好的日志工具,以前的log4,现在的eggjs提供的logger,良好的日志分级,有助于提高查询问题的效率,如今,就直接使用eggjs提供的内置logger对象了。今天,我们主要是来说一说Debug的事情。调试几乎是每一个程序员必备的技能,而选择合适的调试就能极大的提高工作效率,由于Node.js@6.3版本之后已经内置了调试器,因此也可以和Chrome DevTools结合起来使用,于是node-inspector就这样退出了历史舞台。
icepy
2019/06/24
9990
简化的 eggjs debug
怎样在VSCode中调试C++程序
VSCode 是目前最热门的IDE之一,在本节,我们将介绍怎样在 VSCode 中进行 C++ 程序的调试。在开始之前,需要通过 VSCode官网下载对应操作系统的最新版本,并安装到自己的电脑上。
极客开发者
2022/01/18
4.2K0
怎样在VSCode中调试C++程序
让你 nodejs 水平暴增的 debugger 技巧
我觉得学习 nodejs 除了要掌握基础的 api、常用的一些包外,最重要的能力是学会使用 debugger。因为当流程复杂的时候,断点调试能够帮你更好的理清逻辑,有 bug 的时候也能更快的定位问题。
刘小夕
2021/07/19
1.1K0
让你 nodejs 水平暴增的 debugger 技巧
vscode golang详细配置(持续更新)_vscode docker
到这个页面下载golang 的安装包 Go下载 – Go语言中文网 – Golang中文社区 ,再安装就可以了。
全栈程序员站长
2022/11/07
5.6K0
Node.js 调试一路走来经历了什么
做为前端开发,想必大家都写过 Node.js 的代码,也大概率用 debugger 断点调试过。
神说要有光zxg
2022/06/06
6510
Node.js 调试一路走来经历了什么
Visual Studio Code中C++编译与调试配置
在 Visual Studio Code 中,launch.json 和 tasks.json 作为两个重要的配置文件,能够帮助开发者实现调试和任务运行的自动化配置,所以理解这两个配置文件的作用和其内容含义尤为重要。这两个配置文件一般位于项目根目录的 .vscode 文件夹下。
麦克马
2025/05/08
3190
Visual Studio Code中C++编译与调试配置
VSCode前端调试的几种场景
VSCode实现调试主要就是靠的编写lauch.json文件来实现。下面就来看看几种场景。
赤蓝紫
2023/03/29
1.3K0
VSCode前端调试的几种场景
相关推荐
VsCode 各场景高级调试技巧,有用!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验