为什么在我使用 nodemon 和 ts-node 时节点检查器没有启动?
Why does the node inspector not start when I am using nodemon and ts-node?
我有一个用打字稿编写的简单节点服务器。我的package.json配置为:
"scripts": {
"build": "tsc",
"dev": "nodemon --watch src/**/* -e ts,json --exec ts-node ./src/server.ts",
"debug": "nodemon --verbose --watch src/**/* -e ts,json --exec ts-node --inspect ./src/server.ts"
},
当我 运行 npm run dev
nodemon 将启动服务器并在进行任何更改时重新启动它。
[02/28/18 20:45:53] npm run dev
> pq-api@1.0.0 dev C:\Users\joe\pq\pq-api
> nodemon --watch src/**/* -e ts,json --exec ts-node ./src/server.ts
[nodemon] 1.15.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: src/**/*
[nodemon] starting `ts-node ./src/server.ts`
initializing config to development
info: PQ-API running on port 3000
但是,当我 运行 npm run debug
(这样我就可以附加调试器)时,它看起来像是开始启动,但只是永远挂起
[02/28/18 20:39:30] npm run debug
> pq-api@1.0.0 debug C:\Users\joe\pq\pq-api
> nodemon --verbose --watch src/**/* -e ts,json --exec ts-node --inspect ./src/server.ts
[nodemon] 1.15.1
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 10156 to restart
[nodemon] watching: src/**/*
[nodemon] watching extensions: ts,json
[nodemon] starting `ts-node --inspect ./src/server.ts`
[nodemon] spawning
[nodemon] child pid: 13344
[nodemon] watching 12 files
这就是输出的全部内容。该脚本永远不会执行;服务器永远不会启动,并且永远无法连接到检查器。
节点 8.94
nodemon 1.15.1
ts-node 5.0.0
打字稿 2.7.2
为检查选项提供位置和端口,例如:
--inspect=0.0.0.0:9200
在 ts-node 5.0.0 中,您不再以相同的方式传递 --inspect flag
。建议的方式是node --inspect -r ts-node/register path/to/ts
。例如:
nodemon --watch src/**/* -e ts,json --exec node --inspect-brk -r ts-node/register src/app.ts
我正在使用 PHP Storm,@user60456 的先前回答对我来说就像一个魅力。
通过一些更改,我也能够在 PHP Storm 中使用 dotenv 和多个 env 文件 运行 调试模式。
package.json
"start:dev": "nodemon --watch src/**/* -e ts,json --exec node --inspect-brk -r ts-node/register -r dotenv/config local.ts dotenv_config_path=./.env.development",
其中 local.ts 是我的 app.listen() 所在的文件。
然后,我必须创建一个新的 运行 配置(附加到节点。js/Chrome) 具有:
- 主机: 本地主机
- 端口: 9229
- 附加到:Chrome 或 Node.js > 6.3 以 --inspect
开始
然后select本地文件远程URLs中的根文件夹选项卡并设置远程URL 到 /usr/src/app.
现在,您可以 运行 npm run start:dev
。您将看到控制台输出:
Debugger listening on ws://127.0.0.1:9229/...
您现在必须 运行 Nodej.js 调试配置并等待,直到您看到控制台输出:
Debugger attached.
应用程序现在 运行处于调试模式。
我使用上面的一些信息进行了更改,因为我的信息似乎不起作用,我所做的更改确实解决了问题。
来自"start": "tsnd --inspect -- src/app.local.ts"
收件人:"start": "node --inspect -r ts-node/register src/app.local.ts"
我刚刚通过像这样编写 nodemon.json 文件解决了这个问题:
{
"restartable": "rs",
"ignore": [".git", "node_modules/**/node_modules"],
"verbose": true,
"execMap": { // [A]
"ts": "node --require ts-node/register"
},
"watch": ["src/"],
"env": {
"NODE_ENV": "development"
},
"ext": "js,json,ts"
}
参考:https://dev.to/oieduardorabelo/nodejs-with-typescript-debug-inside-vscode-and-nodemon-23o7
我有一个不同的问题导致调试器永远不会 运行。我是运行这个命令,
node index.js --inspect=5005
而不是这个,
node --inspect=5005 index.js
标志应该在源文件之前。
我有一个用打字稿编写的简单节点服务器。我的package.json配置为:
"scripts": {
"build": "tsc",
"dev": "nodemon --watch src/**/* -e ts,json --exec ts-node ./src/server.ts",
"debug": "nodemon --verbose --watch src/**/* -e ts,json --exec ts-node --inspect ./src/server.ts"
},
当我 运行 npm run dev
nodemon 将启动服务器并在进行任何更改时重新启动它。
[02/28/18 20:45:53] npm run dev
> pq-api@1.0.0 dev C:\Users\joe\pq\pq-api
> nodemon --watch src/**/* -e ts,json --exec ts-node ./src/server.ts
[nodemon] 1.15.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: src/**/*
[nodemon] starting `ts-node ./src/server.ts`
initializing config to development
info: PQ-API running on port 3000
但是,当我 运行 npm run debug
(这样我就可以附加调试器)时,它看起来像是开始启动,但只是永远挂起
[02/28/18 20:39:30] npm run debug
> pq-api@1.0.0 debug C:\Users\joe\pq\pq-api
> nodemon --verbose --watch src/**/* -e ts,json --exec ts-node --inspect ./src/server.ts
[nodemon] 1.15.1
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 10156 to restart
[nodemon] watching: src/**/*
[nodemon] watching extensions: ts,json
[nodemon] starting `ts-node --inspect ./src/server.ts`
[nodemon] spawning
[nodemon] child pid: 13344
[nodemon] watching 12 files
这就是输出的全部内容。该脚本永远不会执行;服务器永远不会启动,并且永远无法连接到检查器。
节点 8.94
nodemon 1.15.1
ts-node 5.0.0
打字稿 2.7.2
为检查选项提供位置和端口,例如:
--inspect=0.0.0.0:9200
在 ts-node 5.0.0 中,您不再以相同的方式传递 --inspect flag
。建议的方式是node --inspect -r ts-node/register path/to/ts
。例如:
nodemon --watch src/**/* -e ts,json --exec node --inspect-brk -r ts-node/register src/app.ts
我正在使用 PHP Storm,@user60456 的先前回答对我来说就像一个魅力。
通过一些更改,我也能够在 PHP Storm 中使用 dotenv 和多个 env 文件 运行 调试模式。
package.json
"start:dev": "nodemon --watch src/**/* -e ts,json --exec node --inspect-brk -r ts-node/register -r dotenv/config local.ts dotenv_config_path=./.env.development",
其中 local.ts 是我的 app.listen() 所在的文件。
然后,我必须创建一个新的 运行 配置(附加到节点。js/Chrome) 具有:
- 主机: 本地主机
- 端口: 9229
- 附加到:Chrome 或 Node.js > 6.3 以 --inspect 开始
然后select本地文件远程URLs中的根文件夹选项卡并设置远程URL 到 /usr/src/app.
现在,您可以 运行 npm run start:dev
。您将看到控制台输出:
Debugger listening on ws://127.0.0.1:9229/...
您现在必须 运行 Nodej.js 调试配置并等待,直到您看到控制台输出:
Debugger attached.
应用程序现在 运行处于调试模式。
我使用上面的一些信息进行了更改,因为我的信息似乎不起作用,我所做的更改确实解决了问题。
来自"start": "tsnd --inspect -- src/app.local.ts"
收件人:"start": "node --inspect -r ts-node/register src/app.local.ts"
我刚刚通过像这样编写 nodemon.json 文件解决了这个问题:
{
"restartable": "rs",
"ignore": [".git", "node_modules/**/node_modules"],
"verbose": true,
"execMap": { // [A]
"ts": "node --require ts-node/register"
},
"watch": ["src/"],
"env": {
"NODE_ENV": "development"
},
"ext": "js,json,ts"
}
参考:https://dev.to/oieduardorabelo/nodejs-with-typescript-debug-inside-vscode-and-nodemon-23o7
我有一个不同的问题导致调试器永远不会 运行。我是运行这个命令,
node index.js --inspect=5005
而不是这个,
node --inspect=5005 index.js
标志应该在源文件之前。