我在生产中需要nodemon吗?

del*_*lux 11 node.js nodemon

在本地处理 NodeJS 项目时,需要使用 nodemon 来简化编码。我经常看到仅作为开发依赖项安装的情况,所以我想知道:部署时正确的方法是什么?我们应该仅将其作为开发依赖项包含在内,还是也应该将其包含到服务器中?

在这个项目中,我看到 nodemon 作为常规依赖项安装,然后在 package.json 配置中:

  "scripts": {
    "start": "nodemon src/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }, 
Run Code Online (Sandbox Code Playgroud)

但我想仅将其安装为开发依赖项,然后重新配置配置,例如:

  "scripts": {
    "start-prod": "node src/app.js",
    "start-dev": "nodemon src/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }, 
Run Code Online (Sandbox Code Playgroud)

所以我想知道这是否是正确的方法?我不明白为什么在服务器上我会用 nodemon 观察文件更改,所以我想知道我是否做对了?如果有时需要的话,什么情况下可能会需要呢?

Moh*_*dav 12

简短的回答:您在生产中不需要nodemon。

根据npm 上的 nodemon

nodemon 是一个工具,可在检测到目录中的文件更改时自动重新启动节点应用程序,从而帮助开发基于 Node.js 的应用程序。

它是一个帮助开发的工具,主要是在文件更改时重新启动应用程序服务器。如果您想通过脚本运行nodemon,您可以将其添加到开发依赖项中。否则,您可以全局安装它。

npm install -g nodemon # or using yarn: yarn global add nodemon

并且 nodemon 将全局安装到您的系统路径。您还可以安装 nodemon 作为开发依赖项:

npm install --save-dev nodemon # or using yarn: yarn add nodemon -D

编辑:

如果您想让您的应用程序即使发生崩溃也能保持运行,您应该考虑使用pm2

PM2 是 Node.js 应用程序的生产流程管理器,具有内置负载均衡器。它允许您使应用程序永远保持活动状态,无需停机即可重新加载它们,并简化常见的系统管理任务。

  • PM2 具有 AGPL 许可证,这使得它不兼容在许多项目中使用 (2认同)