其他便利工具介绍
cross-env
用于跨平台设置环境变量的的脚本
使用以下方式启动程序,则可使用process.env.NODE_ENV
获取设置的环境变量,用于区分是否是生产环境
- 在window的cmd中设置node环境变量需要使用
set NODE_ENV=production & node app.js
- 在window的PowerShell中设置node环境需要使用
env:NODE_ENV=production ;node app.js
- 在Linux中设置node环境需要使用
NODE_ENV=production node app.js
由于不同系统中的设置方式不同,所以为了解决该问题就可以使用cross-env工具,使用npm install cross-env -D
本地安装,使用npx cross-env NODE_ENV=production node app.js
即可设置,通常写在package.json
中的scripts
中,使用npm run
命令执行
nodemon
用于开发环境下帮助开发者在检测到目录中的文件发生更改时自动重新启动node应用程序
使用npm install nodemon -D
本地安装,使用npx nodemon app.js
启动程序即可,通常写在package.json
中的scripts
中,使用npm run
命令执行
默认会自动忽略node_modules文件夹,并且只监视以js,mjs,json
后缀的文件的变化,一般无需多余配置,若要想忽略某个目录或某些文件可以使用ignore
参数设置忽略的文件夹
pm2
PM2是Node.js应用程序的生产环境下的管理器,内置负载均衡器,是用于线上环境启动node应用程序进程的监控工具
功能
- node应用程序会以守护进程的形式运行,程序崩溃时会自动重启
- 可以启用多进程方式,由pm2自动分配访问,可充分利用CPU和内存
- 自动将输出控制台的内容写入日志文件中
使用方式
使用npm install pm2 -D
本地安装,本地安装的pm2需要使用npx pm2
执行下面命令
version
:查看pm2版本start
:启动程序list
:显示pm2的监控列表restart
:根据name字段或id字段重启程序进程stop
:根据name字段或id字段停止程序进程delete
:根据name字段或id字段删除要监控程序进程info
:根据name字段或id字段查看要监控程序进程的详细信息log
:根据name字段或id字段查看要监控程序进程的日志信息monit
:根据name字段或id字段查看要监控程序进程
配置
json格式的配置文件,使用start
启动时只需要指定配置文件即可,使用时将注释去掉,json不支持注释
{
"apps": {
"name": "app-server", //应用程序名
"script": "bin/www", //启动程序脚本文件
"watch": true, //文件修改后重启
"ignore_watch": [ //文件修改重启中要忽略的文件变化
"node_modules",
"logs"
],
"instances": 2, //启动进程数量,一般按照cpu的核数算
"error_file": "logs/error.log", //错误日志存放位置
"out_file": "logs/out.log", //控制台输出日志存放位置
"log_date_format": "YYYY-MM-DD HH:mm:ss" //输出日志时加上时间信息,格式由自己定义
}
}
Comments NOTHING