【发布时间】:2019-11-27 22:19:46
【问题描述】:
我有一个 JS web 应用程序,它有一个客户端和服务器包,两者都是使用 webpack 的节点 api 构建的。
在开发模式下运行我的项目需要经过以下步骤:
- 运行两个 webpack 构建,生成两个输出文件。
- 服务器包输出到 dist/server/index.js
- 使用 dist/server/index.js 路径生成子节点进程
- 监视文件夹以进行更改。更改时,终止旧的子进程并重新运行步骤 1-3
我想使用 vscode 添加节点服务器调试。
到目前为止,当我启动一个新的子进程时,我在第 3 步中添加了以下标志。
['--inspect=9222', '--no-lazy', '--inspect-brk']
我在 vscode 中的 launch.json 文件是这样的
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to dev server",
"type": "node",
"request": "attach",
"protocol": "inspector",
"address": "localhost",
"port": 9222,
"restart": true,
"trace": true,
"stopOnEntry": true
}
]
}
当我启动服务器并运行调试器时,一切正常。
不过,我想解决以下两个问题:
- 即使使用
"stopOnEntry": true,调试器也不会选择任何断点,除非我在启动子进程时包含"--inspect-brk"。这很烦人,因为如果我不运行调试器,进程将挂起并且不会继续执行。包含此标志后,当我运行调试器时,构建的dist/server/index.js文件将在我的编辑器中打开,并在第 1 行有一个断点。如果我点击继续,所有未来的调试工作。 - 我正在使用 webpack 的 "inline-source-map" 选项生成源地图。这会将“原始源”放入构建文件中。不过是babel改造后的源码,让调试代码有点烦。
E.g. _myFunction.default instead of myFunction。 vscode 是否有办法将构建的 .js 文件正确映射到我项目中的预构建源代码?我看到了remoteRoot和localRoot选项,但无法让它们工作(并且不确定这些选项是否正确)。
谢谢!
【问题讨论】:
标签: javascript node.js webpack visual-studio-code