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