在vscode中调试ts代码,不支持esm模块

话不多说,直接上配置,在vscode中的setting.json文件中的launch下的configurations 中添加配置即可

//setting.json
"launch": {
 "configurations": [
   // ... other
    {
      "name": "ts-node",
      "type": "pwa-node",
      "request": "launch",
      "args": [
        "${relativeFile}"
      ],
      "env": {
        "NODE_OPTIONS": "--no-warnings"
    },
      "runtimeArgs": [
        "-r",
        //我这里使用的是全局安装的ts-node,当然你也可以直接写ts-node/register,建议使用全局安装的ts-node,不然你每次调试ts代码都得装ts-node和typescript,
        "/usr/local/lib/node_modules/ts-node/register",
      ],
      "cwd": "${workspaceRoot}",
      "protocol": "inspector",
      "internalConsoleOptions": "openOnSessionStart"
    },
  ],
  
  "compounds": []
  }

这样的配置在 cjs 的项目里面是可以用的,当你把package.json里的type:“module” and tsconfig.json里的 module:“ESNext”,这样子就调试不了了.

image-20230113221608934

这里是因为没有对esm进行支持,之后我将runtimeArgs改成这样

      "runtimeArgs": [
        "--loader",
        "/usr/local/lib/node_modules/ts-node/esm/transpile-only.mjs",
        "-r",
        "/usr/local/lib/node_modules/ts-node/register",
      ],

image-20230113221907055

这里是提示没有这个文件,但文件是存在的,因为ts里面导入文件是可以不用扩展名的,之后我将导入的文件加上.ts的扩展名,依旧报同样的错误,猜测是因为ts-node在esm下面模块解析的问题

不知道有哪位大佬知道原因的,麻烦指导一下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值