我目前正在使用Node与nodemon。然后我开始考虑可能有时使用Node进行调试会更好,所以我开始使用node-inspector
但是,有没有可能同时运行这两个程序?
通常我会使用以下命令来运行nodemon:
nodemon server.js
//and similarly
node-debug server.js
我也尝试过:
nodemon --debug http.js
但很遗憾,这也没起作用。
但两个一起?
我目前正在使用Node与nodemon。然后我开始考虑可能有时使用Node进行调试会更好,所以我开始使用node-inspector
但是,有没有可能同时运行这两个程序?
通常我会使用以下命令来运行nodemon:
nodemon server.js
//and similarly
node-debug server.js
我也尝试过:
nodemon --debug http.js
但很遗憾,这也没起作用。
但两个一起?
node-inspector & nodemon --debug app.js
(将app.js替换为你的脚本名称)。 如果出现问题,你偶尔需要手动终止node-inspector,但以这种方式运行命令可以让你选择手动运行rs
来重新启动nodemon。希望有所帮助。您需要使用nodemon --debug server.js
来启动您的服务器,然后您需要在单独的终端窗口中运行node-inspector,除非您将nodemon推送到后台。
nodemon --debug src/index.js
,然后我打开另一个命令提示符并输入 node-debug index.js
。顺便说一下,我在使用Windows :) - Jamie Hutberconsole.log
,它们会在NI
中输出。我猜这不是这种情况? - Jamie Hutber"scripts": {
"start": "npm-run-all --parallel lint start:debug start:server",
"lint": "eslint . --ext .js",
"start:debug": "node-debug server.js",
"start:server": "nodemon server.js"
}
然后在CLI中输入:npm start
注意:我的经验是同时运行nodemon和node-debug有时会导致奇怪的node-inspector行为。因此,当调试时,我已选择从我的脚本中删除nodemon,并依赖node-inspector的save-live-edit功能来实时更改文件。
你必须使用以下命令安装node-inspector和nodemon:
npm install -g nodemon
npm install -g node-inspector
@echo off
echo Starting developer enviroment of the file %1
start nodemon --debug-brk %1
node-debug %1
然后运行:
node_desarrollo.bat "要运行的文件名.js"
如果出现错误:
Error: listen EADDRINUSE :::5858
at Object.exports._errnoException (util.js:855:11)
at exports._exceptionWithHostPort (util.js:878:20)
at Agent.Server._listen2 (net.js:1237:14)
at listen (net.js:1273:10)
at Agent.Server.listen (net.js:1369:5)
at Object.start (_debug_agent.js:21:9)
at startup (node.js:72:9)
at node.js:980:3
这是正常的,因为node-inspector需要打开该端口进行连接,但由于nodemon --debug-brk %1
已经打开了5858端口,所以它无法打开并显示EADDRINUSE :::5858
错误。请注意,nodemon的--debug-brk
标志对于在第一行设置断点是必要的。尝试在运行.bat文件后修改file.js文件,并查看调试器中反映的更改。此调试器会重新启动并显示在file.js文件中所做的更改。祝JS编码愉快!
针对在 Windows 上运行 bash shell 的用户的一个 hacky 修复方法:
首先,将 node-inspector 添加到您的路径中。(您可以使用 npm list -g
找到 npm 安装软件包的位置)
然后在 bash 中使用此命令,或将其添加到您的 npm 脚本中:
START /B node-inspector && nodemon --debug server.js
START /B
是在 Windows 中后台运行的命令。
我无法让nodemon与node-inspector协同工作。进行了一次更改后,它会重新启动,但之后就不再起作用了。也许是因为我正在使用docker容器。
重新加载应用程序的最简单方法是让node-inspector来完成(我知道这不是同时运行两者的答案,但对我有效)。
以以下方式启动您的应用程序:
node-inspector --save-live-edit & \
node --debug /app/server.js
由于我正在使用Linux,所以我基于rpaskett的答案编写了一个bash脚本,这样你就不需要每次记住那个尴尬的命令。
然而,我注意到你在评论中说你正在运行Windows。以下是您可以选择的一些选项:
您可以将bash脚本转换为Windows批处理并将其保存为C:\Windows\System32\node-DEV.bat
。我已经这样做了,在我的Windows PC上它可以工作:
@echo off
echo Starting DEV environment for %1
start node-inspector
nodemon --debug %1
然后你应该能够运行node-DEV server.js
。
另一个选择是,你可以运行像nodedev这样的东西,它是用Node.js编写的,因此平台无关,尽管看起来好像有一段时间没有更新了。
或者,如果你有一个Cygwin环境,甚至可以在其中运行bash脚本。
{
"scripts": {
"dev": "npx nodemon --exec \"node --inspect --debug-port=0.0.0.0 src/index.js\""
}
}