Node.js 目前好像不完全支持 import, 箭头函数,但是可以使用 babel 进行转译,但这样的话,调试的时候,只能把断点打在转译后的文件才能生效
问题是:有没有办法可以让断点停在原始文件上?
使用的是 Visual Studio Code, 有没有相关的插件可以实现?或者,其他 IDE?
谢谢了!
Node.js 目前好像不完全支持 import, 箭头函数,但是可以使用 babel 进行转译,但这样的话,调试的时候,只能把断点打在转译后的文件才能生效
问题是:有没有办法可以让断点停在原始文件上?
使用的是 Visual Studio Code, 有没有相关的插件可以实现?或者,其他 IDE?
谢谢了!
|
RiceSep 18, 2017 via iPhone
1
有,用 source map
|
|
2
你试试在 babel 的配置文件里开启 source map,我记不太清了
|
|
1OF7GSep 18, 2017
3
ES6 的模块系统刚刚支持,但 ES6 的其他特性早就支持了,用的 V8 引擎所以基本和 Chrome 一样的进度。
你应该升级你的 Node 了 |
|
PythonAnswerSep 18, 2017
4
node 现在完全支持 es6 了吗?想用了。。
|
|
duan602728596Sep 18, 2017 via iPhone
5
node 早就能用了
|
|
YardWillSep 18, 2017
6
v8 最新版本 60 已经支持 import node V8.5.0 也已经支持 import 箭头函数这种早就支持了 升级 node 版本 直接打断点就好
|
|
quxiangxuanqxxSep 18, 2017 via Android
7
node 现在的 stable 是 8 升级吧,都支持
|
|
8
@1OF7G
@PythonAnswer @duan602728596 @zjwengyidong @quxiangxuanqxx node 8.5 对模块的支持需要将文件后缀名改为 .mjs, 运行时候也需要加上 --experimental-modules, 不知道正式支持的时候,是不是能直接后缀名 .js |
|
9
同时,vscode 里面安装了 Node.js Modules Intellisense 来检测模块的话,mjs 文件是不扫描的,需要在 user settings 里面添加多一项 ".mjs"
``` "node-module-intellisense.fileModuleExtensions": [ ".js", ".jsx", ".ts", ".d.ts", ".tsx", ".vue", ".json", ".mjs" ], ``` |
|
10
不需要插件
1.像 2 楼说的那样,转译后要有 sourcemap 文件 2.在 launch.json 里把 sourcemap 设为 true,如果失败,说明 vscode 找不到生成的 sourcemap 文件,还要在 launch.json 里配置一下路径。 |
|
11
楼上有些不负责任的乱说,还好楼主自己不糊涂。同一楼 babel 加上 source map。[文档]( https://babeljs.io/docs/usage/cli/#babel-compile-with-source-maps)
|