最近因为一个项目需要使用Node.js进行开发,研究了一下开始喜欢上这个简单方便的后端语言了,接下来准备将一些功能使用Node.js实现,充分发挥其简单、异步和快速的优点。
nodemon
刚开始进行Node.js项目开发的时候,就遇到一个非常尴尬的问题,就是每次修改完js文件都要重启程序,特别是在进行express等web项目开发的时候特别不方便,后来查询了一下可以使用nodemon实现对node.js项目的热部署。
首先使用 npm install -g nodemon
命令安装nodemon,然后将启动项目时候的node
命令替换成nodemon
即可。如果使用WebStorm或IntelliJ IDEA的话,可以将Node interpreter从node替换成nodemon,如下图:
也可以将nodemon作为参数,如下图:
forever 和 pm2
需要说明的是,nodemon
通常用于开发环境,不需要重复重启node进程。如果正式部署的时候,需要将node项目启动为后台运行的进程,可以使用forever 或 pm2。
二者的核心功能用来监控node进程,保证进程始终处于运行状态,后者还可以实时收集日志和监控。
使用 npm install forever -g
命令安装forever
,常用命令如下:
# 作为前台任务启动
$ forever server.js
# 作为服务进程启动
$ forever start app.js
# 停止服务进程
$ forever stop Id
# 重启服务进程
$ forever restart Id
# 监视当前目录的文件变动,一有变动就重启
$ forever -w server.js
# -m 参数指定最多重启次数
$ forever -m 5 server.js
# 列出所有进程
$ forever list
使用 npm install pm2 -g
命令安装pm2
,常用命令如下:
# 启动应用
$ pm2 start app.js
# 指定同时起多少个进程(由CPU核心数决定),组成一个集群
$ pm2 start app.js -i max
# 列出所有任务
$ pm2 list
# 停止指定任务
$ pm2 stop 0
# 重启指定任务
$ pm2 restart 0
# 删除指定任务
$ pm2 delete 0
# 保存当前的所有任务,以后可以恢复
$ pm2 save
# 列出每个进程的统计数据
$ pm2 monit
# 查看所有日志
$ pm2 logs
# 导出数据
$ pm2 dump
# 重启所有进程
$ pm2 kill
$ pm2 resurect
# 启动web界面 http://localhost:9615
$ pm2 web
参考资料:
nodemon webstorm 配置应用
在IntelliJ IDEA开发nodejs进行热部署免重启
在WebStorm、IntelliJ IDEA使用nodemon进行热部署、node免重启开发
Linux 守护进程的启动方法