我目前正在使用 node 和nodemon。然后我开始认为有时使用带有节点的检查器可能会很好,所以我开始使用节点检查器
但是,是否可以同时运行两者?
通常要运行 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 推到后台。
对于那些想要一个独立于操作系统的解决方案并且没有针对 Windows 的 hack 等的人来说。
您可以使用 npm-run-all,它是一个 CLI 工具,允许并行或顺序运行多个 npm 脚本。因此,您将 package.json 设置为:
"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 有时会导致奇怪的节点检查器行为。因此,我在调试时选择从我的脚本中删除 nodemon,并依靠 node-inspectors save-live-edit 功能即时更改文件。
我无法让 nodemon 与 node-inspector 配合得很好。一次更改后它将重新启动,但之后不再。也许是因为我使用的是 docker 容器。
重新加载应用程序的最简单方法是让节点检查器执行它(我知道这不是同时运行的答案,但它对我有用)。
通过以下方式启动您的应用程序:
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 脚本。
针对运行 bash shell 的 Windows 用户的 hacky 修复:
首先,将节点检查器添加到您的路径。
(你可以找到 npm 在哪里安装包npm list -g
)
然后在 bash 中使用这个命令,或者将它添加到你的 npm 脚本中:
START /B node-inspector && nodemon --debug server.js
START /B
是在后台运行的windows命令。
您必须使用以下命令安装 node-inspector 和 nodemon:
npm install -g nodemon
npm install -g node-inspector
要在 Windows 中运行,请创建一个新的 .bat 文件并添加以下行:
@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
这是正常的,因为节点检查器需要打开该端口才能连接,但是由于nodemon --debug-brk %1
打开了 5858 端口,它无法打开并显示EADDRINUSE :::5858
错误,请注意--debug-brk
nodemon 的标志有必要在第一行设置断点。运行 .bat 后尝试修改 file.js 并查看调试器上反映的更改。此调试器重新启动并显示在 file.js 中所做的更改。快乐的 JS 编码!!!
{
"scripts": {
"dev": "npx nodemon --exec \"node --inspect --debug-port=0.0.0.0 src/index.js\""
}
}