pm2
- PM2是守护进程管理器,可以帮助您管理和保持应用程序在线
- 官网
- 网上查了好多资料,大部分都是误人子弟的。
背景
- Node使用了babel(为了使用import), 真是*蛋。
- 然后发现pm2一直报
import的错。 - 版本
node v12.13.1
pm2 4.4.1
模板地址
文件说明
- 我们需要使用到3个文件
- 文件1,
index.js项目启动文件 - 文件2,
process.jspm2配置文件(新建) - 文件3,
server.jsbabel引入文件(新建)
1、在node中安装babel相关模块
npm install babel-core -D
npm install babel-preset-env -D
npm install babel-cli -g //这里需要全局
安装后, 新建.babelrc,内容为:
{
"presets": [
"env"
],
"plugins": []
}
2、启动
babel-node index.js
发现可以正常启动了,index.js中使用到了es6语法
3、配置pm2
3.1 新建pm2启动配置文件processes.json
- 注意:文件后缀为
.json而不是.js
processes.json
//processes.json
{
"apps": [
{
"name": "pm2-test",
"cwd": "./",
"script":"server.js",//这里填的是server.js
"log_date_format": "YYYY-MM-DD HH:mm Z",
"error_file": "./logs/app-err.log",
"out_file": "./logs/app-out.log",
"exec_mode":"fork",
"watch": true,
"ignore_watch": './logs', //不监听logs文件
"env": {
"COMMON_VARIABLE": "true"
},
"env_production" : {
"NODE_ENV": "production"
}
}
]
}
3.2 新建server.js 入口文件
- 模块安装
npm i babel-register -D
npm i babel-polyfill -D
- 新建
server.js,内容:
//server.js
require('babel-register')
require('babel-polyfill')
require('index.js')//目录根据你的项目而定
3.2 启动
pm2 start processes.js
- 然后看看日志有无报错。
- 没报错就Ok了
4、 附上一些依赖
//package.json
"devDependencies": {
"babel-core": "^6.26.3",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-register": "^6.26.0"
}