首页 > 其他 > 详细

PM2守护babel-node

时间:2020-03-30 14:45:39      阅读:133      评论:0      收藏:0      [点我收藏+]

如果你的nodejs项目使用了最新的语法,比如 importexport 代替了 commonjsrequire,那么使用pm2守护进程的时候可能会遇到一些问题。交代一下背景,我的node项目使用了import,文件名是.js而不是.mjs,所以无法直接使用 node 命令运行入口文件,如果要用 PM2 守护进程,需要指定babel-node解析器,可以采用下面的配置:

// pm2.json
{
  "name": "acl",
  "script": "./build/server.js", //脚本位置
  "exec_interpreter": "./node_modules/.bin/babel-node", // 指定解析器
  "interpreter_args": "--config-file ./node-babel.js", // 传给解析器的参数
  "exec_mode": "fork", // 自定义解析器和npm只能使用fork模式,无法使用集群
  "error_file": "./logs/error.log",
  "out_file": "./logs/console.log",
  "pid_file": "./logs/pid_file.pid",
  "log_date_format": "YYYY-MM-DD HH:mm:ss",
  "combine_logs": true,
  "merge_logs": true,
  "env": {
    "NODE_ENV": "qa"
  }
}

简单总结下:
pm2的集群模式不支持自定义解析器,其实npm脚本也无法使用集群模式,只是运行npm脚本无需指定解析器,默认的node是可以运行的。如果非要运行包含 importexport 的node文件,又要支持集群模式,那么需要打包你的程序,可以使用 webpack 构建。

如有错误,欢迎评论!

PM2守护babel-node

原文:https://www.cnblogs.com/idiv/p/12598077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!