我有一个 NodeJS 项目,我可以使用 yarn start
命令从命令行开始。我的 package.json
看起来与此类似:
{
"name": "projectname",
"version": "0.0.1",
"description": "",
"author": "My Name",
"license": "",
"scripts": {
"start": "yarn dev",
"dev": "yarn stop && pm2 start pm2-dev.yaml && webpack-dev-server --progress",
"prod": "yarn stop && yarn build && pm2 start pm2-prod.yaml",
"build": "rimraf dist lib && babel src -d lib --ignore test.js && cross-env NODE_ENV=production webpack -p --progress",
"stop": "rimraf logs/* && pm2 delete all || true"
},
"dependencies": {
"body-parser": "~1.16.0",
"ejs": "2.5.5",
"express": "^4.14.1",
"pg": "^6.1.2",
"react": "^15.4.2",
"redux": "^3.6.0",
},
"devDependencies": {
"babel-cli": "^6.22.2",
"cross-env": "^3.1.4",
"eslint": "^3.13.0",
"pm2": "^2.3.0",
"redux-mock-store": "^1.2.2",
"rimraf": "^2.5.4",
"webpack": "^2.2.1",
"webpack-dev-server": "^2.2.1"
}
}
我正在尝试使用 Visual Studio Code 以调试模式启动该项目,但几乎没有运气。我在 VS Code launch.json
文件中定义了我的启动配置,如下所示:
{
// Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "yarn",
"runtimeExecutable": "yarn",
"runtimeArgs": [
"start"
],
"port": 5858,
"cwd": "${workspaceRoot}",
"timeout": 10000
}
]
}
此配置的问题在于它通常会超时,因为 webpack-dev-server
构建时间超过 10 秒。我可以在我的配置中增加 timeout
,但我注意到 VS Code 最终会显示一条消息 Cannot connect to runtime process (timeout after 30000 ms).
,所以我认为这不是一个好的解决方案。此外,这种配置会忽略我的断点,这告诉我我肯定在这里做错了。
这是我第一次尝试 Visual Studio Code,我通常不使用 NodeJS,但我得到了这个项目,所有这些脚本都在 package.json
已经定义,所以我正在尝试采用它并且因此,关于如何正确运行它的所有困惑。
Visual Studio Code 可以运行这样一个具有完整调试功能的项目吗?如果可以,我应该如何配置我的启动脚本?
原文由 errata 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最终在
launch.json
中进行了以下配置:以及
scripts
属性中的以下条目package.json
:您可以包含一个
timeout
键(默认为 10000)并增加其值(如果有的话)prestart:debug
脚本中的package.json
可能导致启动延迟实际的节点应用程序。