Nodejs 用 ES6 语法(包含 import 和 export)写的服务端脚本,如何在 webstorm 里调试?

发布于 1周前 作者 zlyuanteng 来自 nodejs/Nestjs

Nodejs 用 ES6 语法(包含 import 和 export)写的服务端脚本,如何在 webstorm 里调试?
因为 nodejs 目前还不能完全支持 ES6 ,只能进一步转换,比如 babel 转换( babel - node 代替 node 命令)。

但一时不知道怎么在 webstorm 里配置并调试代码。

10 回复

Sourcemap 支持不…


Debug 时 Node interpreter 直接配置为 babel-node 就行了



babel-node 命令是被局部安装到 node_modules/.bin ,所以通过 package 里的 scripts 的声明执行,比如:

“scripts”: {
“build”: “babel-node index.js”
}

webstorm 配置 Run / debug 时,添加 jnpm 的配置项,添加 Node interpreter 为: node_modules/.bin/babel-node 。


然后,无法启动。难道 babel - node 要全局命令

nodejs 接触不久, 请多多指教!



“scripts”: {
“build”: “./node_modules/.bin/babel-node index.js”
}

局部安装的话,应该这样使用。

nodejs6 好像已经支持 es6

可以调试了,但是

import a from ‘/path/to/a’; 然后在后面断点上,此变量名为 undefined 。

好像 import 时都会被转化成其他名字,还是没法调试源码。

去掉 转义,啥事没有

我的 nodejs 是 5.5 可以使用 ES6 啊, 反正我用到的新特性都没问题



nodejs 只是部分支持 ES6 ,因为是基于 V8 引擎的 (ECMAScript 2015 (ES6) and beyond)[https://nodejs.org/en/docs/es6/]。

很显然 nodejs 目前还不支持比如 import 和 export 等语法。

在 WebStorm 中调试使用 ES6 语法(包含 importexport)编写的 Node.js 服务端脚本,你可以按照以下步骤进行:

  1. 配置项目: 确保你的项目已经使用 Babel 或 Node.js 的原生 ES6 支持(Node.js v12+ 提供了较好的 ES6 支持)。如果使用 Babel,确保已经安装并配置了相关依赖(如 @babel/core, @babel/preset-env 等)。

  2. 创建 .babelrcbabel.config.json(如果使用 Babel):

    {
      "presets": ["@babel/preset-env"]
    }
    
  3. 配置 WebStorm

    • 打开 WebStorm,加载你的项目。
    • Run 菜单中,选择 Edit Configurations...
    • 点击左上角的 + 号,选择 Node.js
    • JavaScript file 中指定你的入口文件(如 app.js)。
    • 确保勾选 Enable Node.js core modules debugging 以启用核心模块调试。
  4. 使用 ES6 语法: 确保你的文件使用 .js.mjs 扩展名(如果使用 Node.js 原生 ES6 模块支持,推荐使用 .mjs)。

  5. 启动调试: 在配置好的运行/调试配置上点击运行(绿色三角形)或调试(绿色虫子图标)。WebStorm 会启动 Node.js 进程,并在断点处暂停执行,允许你进行调试。

这样,你就可以在 WebStorm 中方便地调试使用 ES6 语法的 Node.js 服务端脚本了。

回到顶部