jpi*_*son 39 debugging npm visual-studio-code
我之前使用gulp并运行gulp从Visual Studio Code调试器启动我的应用程序和监听器,但最近需要通过npm切换到运行脚本.不幸的是,我无法让VSCode能够通过调试器运行npm脚本,因此我不得不求助于运行节点直接启动我的服务器,这样就摆脱了我自动重新加载代码的监听器任务.
这看起来应该很简单,但到目前为止,我没有太多运气.下面是我尝试使用的launch.json文件的片段,但无法找到npm.
{
...
"program": "npm",
"args": [
"run",
"debug"
],
...
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误.
错误请求'launch':程序'c:\ myproject \npm'不存在
相关资源:
Jac*_*eam 34
我刚刚注意到“新终端”下拉列表中的“JavaScript 调试终端”。VSCode 会自动附加到您在该终端窗口中运行的任何内容。
不再需要复杂的调试配置!
jpi*_*son 30
看起来VS Code将在2016年10月发布的版本中支持npm脚本和其他启动方案.
下面是一个在GitHub上提出的例子.
packages.json
"scripts": {
"debug": "node --nolazy --debug-brk=5858 myProgram.js"
},
Run Code Online (Sandbox Code Playgroud)
vscode启动配置
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script", "debug"
],
"port": 5858
}
Run Code Online (Sandbox Code Playgroud)
Gut*_*Mac 19
在.vscode/launch.json中配置新的调试目标:
{
"name": "Attach To npm",
"type": "node",
"request": "attach",
"port": 5858,
"address": "localhost",
"restart": false,
"sourceMaps": false,
"outDir": null,
"localRoot": "${workspaceRoot}",
"remoteRoot": null
}
Run Code Online (Sandbox Code Playgroud)使用--debug-brk选项配置您的npm以运行节点:
"scripts": {
"start": "node app.js",
"debug": "node --debug-brk app.js"
...
Run Code Online (Sandbox Code Playgroud)从shell启动您的应用程序:
$npm run debug
Run Code Online (Sandbox Code Playgroud)默认情况下,程序将在端口5858中等待连接调试器
因此,在visual studio代码中运行调试器("Attach To npm").
享受你的调试器:)
Tud*_*soi 16
使用 npm 是可行的,而无需更改您的scripts部分package.json
这里的技巧是传递--inspect-brk=9229to 节点。
该命令看起来像 npm run start -- --inspect-brk=9229
这是.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "${env:NVM_BIN}/npm", //change this to your npm path
"runtimeArgs": [
"run-script",
"start",
"--",
"--inspect-brk=9229"
],
"port": 9229
},
]
}
Run Code Online (Sandbox Code Playgroud)
Sal*_*ood 12
我认为您正在寻找的是以下配置。
将以下对象添加到文件中的configurations数组中.vscode/launch.json。
{
"command": "npm run dev",
"name": "Run npm dev",
"request": "launch",
"type": "node-terminal"
}
Run Code Online (Sandbox Code Playgroud)
并立即尝试使用新配置进行调试。VSCode 将处理调试器附件。
不要忘记替换npm run dev为您想要的命令。
小智 9
这就是我的 launch.json 的样子,它的工作原理是:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch via NPM",
"request": "launch",
"runtimeArgs": [
"run-script",
"dev"
],
"runtimeExecutable": "npm",
"skipFiles": [
"<node_internals>/**"
],
"type": "pwa-node"
}
]
}
Run Code Online (Sandbox Code Playgroud)
fel*_*ker -7
NPM 脚本和 gulp 并不是真正用于启动应用程序,而是用于运行编译等任务。如果它是一个节点应用程序,我建议您在没有 npm 的情况下以这种方式配置 launch.json。如果您有复杂的侦听器或流程管理器(例如 PM2),请从流程管理器手动启动应用程序,然后使用附加配置。
对于 npm任务"command": "npm",您可以使用和指定tasks.json "args": ["run"]。
| 归档时间: |
|
| 查看次数: |
37628 次 |
| 最近记录: |