我如何将 babel 6 与 pm2 1.0 一起使用?

How can I use babel 6 with pm2 1.0?

我有用 ES6 编写的服务器代码,我使用 pm2 来管理该服务器。 几个月前,我使用了 next_gen_js 选项,效果非常好。

但是,我现在尝试将 pm2 更新到 v1.0.0,但我收到关于 import 是非法令牌的错误。基本上,我的 ES6 文件不再被解析为 ES6。

如何将 pm2 与 ES6 文件一起使用?

pm2 dropped v1.0.0 中的 next_gen_js 标志,因为它捆绑了 babel,这很重。

你基本上有四个选择。

  1. 停止在后端使用 ES6。
  2. 坚持使用 pm2 v0.14 并使用 next_gen_js 标志。
  3. 使用 interpreterexec_interpreter 的别名)标志并将其设置为 babel-node。您需要添加 babel-cli 作为应用的依赖项。请注意,interpreter 选项仅与 fork exec_mode 兼容,而不与 cluster 兼容。此选项在撰写本文时仍处于测试阶段,除非您有重要的缩放限制,否则这可能不是主要问题。
  4. 使用一些首先需要 babel-register 的特定入口点。例如,您可能有一个 ES6 中的 server.js 文件和 ES6 兼容引擎的首选入口点,以及一个仅执行 require('babel-register'); require('./server');.
  5. index.js

根据文档 (http://pm2.keymetrics.io/docs/usage/quick-start/),您只需使用解释器标签启动 pm2,例如:

pm2 start --interpreter babel-node server.js //(server.es6)