在 Visual Studio 代码中调试 strapi
Debugging strapi in Visual Studio Code
我正在尝试在 VS Code 中调试我的 strapi 项目 (3.0.0 beta 16.6)。
我的 launch.json:
{
"type": "node",
"request": "attach",
"name": "Attach to strapi",
"port": 9229
}
我的package.json:
"scripts": {
"debug": "node --inspect=127.0.0.1:9229 ./node_modules/strapi/bin/strapi.js develop"
}
调试器附加到进程,但我的所有断点都未验证(显示为黑色,而不是红色)。我的配置有什么问题?
问题已通过将端口号设置为 9203 解决:
{
"type": "node",
"request": "attach",
"name": "Attach to strapi",
"port": 9229
}
但我不知道它是如何工作的...
此回答来自以下strapi/strapi issue:
我想出了下一个解决方案:
在 server.js 文件中有下一个脚本(我的自定义脚本):
const strapi = require('strapi');
strapi({ dir: process.cwd(), autoReload: true }).start();
我正在通过下一个命令使用 nodemon:nodemon --inspect=0.0.0.0:9228 server.js
现在我可以通过调试器附加到 9228
。
只是添加到@alxnkt 评论中。
我遇到了同样的问题,通过将 launch.json 更改为端口 9230
解决了这个问题
{
"type": "node",
"request": "attach",
"name": "Attach to strapi",
"port": 9230
}
同时将 package.json 上的端口保持为 9229
"debug": "node --inspect=127.0.0.1:9229 ./node_modules/strapi/bin/strapi.js develop"
当调用 Strapi 开发命令(可能是管理面板及其核心服务器)时,不知何故有 2 个进程 运行,我们必须监视的进程变成了端口 9230。
您也可以使用 NODE_OPTIONS
:
NODE_OPTIONS='--inspect' yarn strapi develop
您将获得:
$ NODE_OPTIONS="--inspect" yarn strapi develop
Debugger listening on ws://127.0.0.1:9229/8564942a-6476-443a-9f64-87fa6d0055b7
For help, see: https://nodejs.org/en/docs/inspector
yarn run v1.22.5
$ strapi develop
Starting inspector on 127.0.0.1:9229 failed: address already in use
Debugger listening on ws://127.0.0.1:9230/7da840dd-cb89-493f-8ce0-e11530efdfbb
For help, see: https://nodejs.org/en/docs/inspector
现在您可以使用调试:附加到节点进程附加到端口 9230。
在 .vscode/launch.json
"configurations"
属性 和 运行
中添加 VS 配置“NODE:通过 npm 启动”
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"develop"
],
"port": 9229,
"skipFiles": [
"<node_internals>/**"
],
"console": "integratedTerminal"
}
我刚刚通过 NPM 启动了它,这是我的 launch.json(在 .vscode 文件夹中)
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"develop"
],
"port": 9229,
"skipFiles": [
"<node_internals>/**"
],
"console": "integratedTerminal"
}
]
}
使用 Strapi v4 这对我有用
{
"version": "0.2.0",
"configurations": [
{
"name": "STRAPI Debug",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "node",
"runtimeVersion":"14.19.0",
"runtimeArgs": ["--lazy"],
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceRoot}/node_modules/@strapi/strapi/bin/strapi.js",
"args": [
"develop"
],
"protocol": "inspector",
"env": {
"NODE_ENV": "development"
},
"autoAttachChildProcesses": true,
"console": "integratedTerminal"
},
]
}
我正在尝试在 VS Code 中调试我的 strapi 项目 (3.0.0 beta 16.6)。 我的 launch.json:
{
"type": "node",
"request": "attach",
"name": "Attach to strapi",
"port": 9229
}
我的package.json:
"scripts": {
"debug": "node --inspect=127.0.0.1:9229 ./node_modules/strapi/bin/strapi.js develop"
}
调试器附加到进程,但我的所有断点都未验证(显示为黑色,而不是红色)。我的配置有什么问题?
问题已通过将端口号设置为 9203 解决:
{
"type": "node",
"request": "attach",
"name": "Attach to strapi",
"port": 9229
}
但我不知道它是如何工作的...
此回答来自以下strapi/strapi issue:
我想出了下一个解决方案: 在 server.js 文件中有下一个脚本(我的自定义脚本):
const strapi = require('strapi');
strapi({ dir: process.cwd(), autoReload: true }).start();
我正在通过下一个命令使用 nodemon:nodemon --inspect=0.0.0.0:9228 server.js
现在我可以通过调试器附加到 9228
。
只是添加到@alxnkt 评论中。 我遇到了同样的问题,通过将 launch.json 更改为端口 9230
解决了这个问题{
"type": "node",
"request": "attach",
"name": "Attach to strapi",
"port": 9230
}
同时将 package.json 上的端口保持为 9229
"debug": "node --inspect=127.0.0.1:9229 ./node_modules/strapi/bin/strapi.js develop"
当调用 Strapi 开发命令(可能是管理面板及其核心服务器)时,不知何故有 2 个进程 运行,我们必须监视的进程变成了端口 9230。
您也可以使用 NODE_OPTIONS
:
NODE_OPTIONS='--inspect' yarn strapi develop
您将获得:
$ NODE_OPTIONS="--inspect" yarn strapi develop
Debugger listening on ws://127.0.0.1:9229/8564942a-6476-443a-9f64-87fa6d0055b7
For help, see: https://nodejs.org/en/docs/inspector
yarn run v1.22.5
$ strapi develop
Starting inspector on 127.0.0.1:9229 failed: address already in use
Debugger listening on ws://127.0.0.1:9230/7da840dd-cb89-493f-8ce0-e11530efdfbb
For help, see: https://nodejs.org/en/docs/inspector
现在您可以使用调试:附加到节点进程附加到端口 9230。
在 .vscode/launch.json
"configurations"
属性 和 运行
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"develop"
],
"port": 9229,
"skipFiles": [
"<node_internals>/**"
],
"console": "integratedTerminal"
}
我刚刚通过 NPM 启动了它,这是我的 launch.json(在 .vscode 文件夹中)
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"develop"
],
"port": 9229,
"skipFiles": [
"<node_internals>/**"
],
"console": "integratedTerminal"
}
]
}
使用 Strapi v4 这对我有用
{
"version": "0.2.0",
"configurations": [
{
"name": "STRAPI Debug",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "node",
"runtimeVersion":"14.19.0",
"runtimeArgs": ["--lazy"],
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceRoot}/node_modules/@strapi/strapi/bin/strapi.js",
"args": [
"develop"
],
"protocol": "inspector",
"env": {
"NODE_ENV": "development"
},
"autoAttachChildProcesses": true,
"console": "integratedTerminal"
},
]
}