让Node.js项目实现热部署和后台运行

最近因为一个项目需要使用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作为参数,如下图:

foreverpm2

需要说明的是,nodemon通常用于开发环境,不需要重复重启node进程。如果正式部署的时候,需要将node项目启动为后台运行的进程,可以使用foreverpm2

二者的核心功能用来监控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 守护进程的启动方法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注