# 写 Node.js 代码,从学会调试开始

1. 直接在vscode调试js代码

运行代码

node index.js即可

断点调试

  • cmd+shift+p 打开命令搜索
  • 查找Debug: Toggle Auto Attach
  • 选择需要的调试模式,一般选仅带标志
  • 在需要调试的代码中断点
  • 在终端里输入任意带有 --inspect 的命令,就会自动被断点到了,如
    • node --inspect index.js
    • 暂不支持ts-node

2. 直接在vscode调试ts代码

运行代码

  1. 全局或者本地安装ts-node、typescript
    npm i -g ts-node typescript
    
  2. 执行tsc -init添加默认配置文件tsconfig.json
  3. 执行ts-node index.ts

好处是,无需搭建babel等转译环境就可以快速测试ts代码

断点调试

根据ts-node官方文档,想在ts文件使用node的--inspect,需要指定ts-node/register,也就是:

node -r ts-node/register --inspect index.ts

但是这需要项目本地安装ts-node,如果不想装本地ts-node,则需要指定全局的ts-nodex/register路径:

node -r /Users/xx/.nvm/versions/node/v14.18.1/lib/node_modules/ts-node/register/index.js --inspect index.ts

使用npm 奇技淫巧可以简化命令为:

node -r `npm root -g`/ts-node/register --inspect index.ts

ps: node指令 -r,指的是–require module,启动时预加载指定的模块,遵循require()的模块解析规则。