Node.js 使用 ES6 在 Visual Studio Code 中调试?

2017-09-18 00:47:24 +08:00
 YYYeung

Node.js 目前好像不完全支持 import, 箭头函数,但是可以使用 babel 进行转译,但这样的话,调试的时候,只能把断点打在转译后的文件才能生效

问题是:有没有办法可以让断点停在原始文件上?

使用的是 Visual Studio Code, 有没有相关的插件可以实现?或者,其他 IDE?

谢谢了!

6506 次点击
所在节点    Node.js
11 条回复
Rice
2017-09-18 01:01:38 +08:00
有,用 source map
Rice
2017-09-18 01:02:37 +08:00
你试试在 babel 的配置文件里开启 source map,我记不太清了
1OF7G
2017-09-18 08:31:23 +08:00
ES6 的模块系统刚刚支持,但 ES6 的其他特性早就支持了,用的 V8 引擎所以基本和 Chrome 一样的进度。
你应该升级你的 Node 了
PythonAnswer
2017-09-18 08:35:41 +08:00
node 现在完全支持 es6 了吗?想用了。。
duan602728596
2017-09-18 08:40:04 +08:00
node 早就能用了
YardWill
2017-09-18 08:47:35 +08:00
v8 最新版本 60 已经支持 import node V8.5.0 也已经支持 import 箭头函数这种早就支持了 升级 node 版本 直接打断点就好
quxiangxuanqxx
2017-09-18 09:05:00 +08:00
node 现在的 stable 是 8 升级吧,都支持
YYYeung
2017-09-18 09:43:07 +08:00
@1OF7G
@PythonAnswer
@duan602728596
@zjwengyidong
@quxiangxuanqxx

node 8.5 对模块的支持需要将文件后缀名改为 .mjs, 运行时候也需要加上 --experimental-modules, 不知道正式支持的时候,是不是能直接后缀名 .js
YYYeung
2017-09-18 09:45:34 +08:00
同时,vscode 里面安装了 Node.js Modules Intellisense 来检测模块的话,mjs 文件是不扫描的,需要在 user settings 里面添加多一项 ".mjs"

```
"node-module-intellisense.fileModuleExtensions": [
".js",
".jsx",
".ts",
".d.ts",
".tsx",
".vue",
".json",
".mjs"
],
```
vghdjgh
2017-09-18 09:47:31 +08:00
不需要插件
1.像 2 楼说的那样,转译后要有 sourcemap 文件
2.在 launch.json 里把 sourcemap 设为 true,如果失败,说明 vscode 找不到生成的 sourcemap 文件,还要在 launch.json 里配置一下路径。
ianchn
2017-09-18 09:48:53 +08:00
楼上有些不负责任的乱说,还好楼主自己不糊涂。同一楼 babel 加上 source map。[文档]( https://babeljs.io/docs/usage/cli/#babel-compile-with-source-maps)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/391485

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX