我在生产中需要 nodemon 吗?

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

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

  "scripts": {
    "start": "nodemon src/app.js",
    "test": "echo "Error: no test specified" && exit 1"
  }, 

但我正在考虑仅将其安装为开发依赖项,然后重新修改配置,例如:

  "scripts": {
    "start-prod": "node src/app.js",
    "start-dev": "nodemon src/app.js",
    "test": "echo "Error: no test specified" && exit 1"
  }, 

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

stack overflow Do I need nodemon in production?
原文答案

答案:

作者头像

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

根据 nodemon on npm

nodemon 是一个工具,通过在检测到目录中的文件更改时自动重新启动node应用程序来帮助开发基于 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 应用程序的生产流程管理器,具有内置负载均衡器。它允许您使应用程序永远保持活动状态,在不停机的情况下重新加载它们,并促进常见的系统管理任务。