当前位置: 首页 > 工具软件 > Node-pm > 使用案例 >

NodeJS-进程管理pm2/forever/nodemon/supervisor/ts-node-dev

谯嘉懿
2023-12-01

无论在开发阶段还是在上线阶段,对进程的管理是大大解决时间和成本的。

pm2

node.js server tools

// 1. 安装
// 全局安装
$ yarn global add  pm2
# OR
$ npm install pm2 -g
// 局部安装
$ yarn add -D pm2
# OR
$ npm i -D pm2


// 2. 使用
# global
$ pm2 start server/index.js

// 3. 常用指令
$ pm2 start app.js
$ pm2 monit
$ pm2 list
$ pm2 stop
$ pm2 restart
$ pm2 delete
// PM2 配置
// ecosystem.config.js  
module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }]
}

//  pm2 [start|restart|stop|delete] ecosystem.config.js

nodemon

npm nodemon

// 1. 安装
$ yarn global add  nodemon
# OR
$ npm i -g nodemon  // 全局安装

# global
$ nodemon server/index.js  // 启动

// 2. 使用
nodemon ./main.js // 启动node服务
nodemon ./main.js localhost 6677 // 在本地6677端口启动node服务
"start": "ts-node -r tsconfig-paths/register nodemon src/main.ts",  // npm run start
// nodemon存在一个非常好功能 延迟重启
nodemon -delay10 main.js
nodemon --delay 2.5 server.js
nodemon --delay 2500ms server.js
// 这类似js函数的函数节流,只是子最后一次更改时间往后延迟时间。避免短时间内多次执行

// nodemon
// Nodemon is a utility that will monitor for any changes in your source and automatically restart your server.
// Nodemon是一个实用程序,它将监视源代码中的任何更改,并自动重新启动服务器。
// nodemon.json
{
  "verbose": true,
  "ignore": ["*.test.js", "fixtures/*"],
  "execMap": {
    "rb": "ruby",
    "pde": "processing --sketch={{pwd}} --run"
  }
}
// package.json
{
  "name": "nodemon",
  "homepage": "http://nodemon.io",
  "...": "... other standard package.json values",
  "nodemonConfig": {
    "ignore": ["test/*", "docs/*"],
    "delay": "2500"
  }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TyiY4Iqp-1621239594990)(/Users/conan_w/Desktop/img-typora/nodemon(computing)].png)

supervisor

npm supervisor

// 1.安装和使用和nodemon差不多

ts-node-dev

当任何所需文件发生更改时(标准情况下node-dev),它将重新启动目标节点进程,但在两次重新启动之间共享Typescript编译过程。

Q1: pm2, nodemon的区别

PM2守护node进程不被停止,发布到线上时使用。

nodemon修改代码自动重启,开发时使用很方便。

Q2:pm2, forever 的区别

Forever 管理多个站点,每个站访问量不大,不需要监控。

pm2 网站访问量比较大,需要完整的监控界面。

总结

nodemon,node-devnode-dev,node-dev 是开发环境用。node-dev和coffeescript兼容最好。

相对的pm2,forever适合用在打包上线的服务进程管理。

 类似资料: