如何在pm2中使用babel-node

jsD*_*via 6 node.js pm2 babel-node babel-cli

我想用pm2软件包管理我的节点进程。如果我的代码中没有任何es6语法,那么我不需要添加babel-node,并且没有任何es6语法代码就可以在此代码行中将我的代码与pm2一起运行

pm2 start server.js
Run Code Online (Sandbox Code Playgroud)

但是,一旦我像这样添加es6语法的任何代码行

import express from 'express';
Run Code Online (Sandbox Code Playgroud)

我收到意外的令牌导入错误。

如您所知,要解决此问题,我们必须添加babel-node程序包。

但是当我使用这行命令来编译我的代码时

pm2 start server.js --interpreter babel-node
Run Code Online (Sandbox Code Playgroud)

我得到这个错误

Error: spawn babel-node ENOENT
at _errnoException (util.js:1022:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我不使用pm2并使用此行代码运行代码

babel-node server.js
Run Code Online (Sandbox Code Playgroud)

一切都好。

Moo*_*sch 13

我刚刚开始使用 pm2,我发现这有帮助。

你有你的 npm 脚本来运行 es6 js,比如

{
  ...
  "scripts": {
    "server": "babel-node ./src/server.js"
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后使用 pm2 运行它,pm2 start npm -- run server 请确保您已babel-cli全局安装。


Pet*_*ter 7

在您的项目中安装babel-cli yarn add babel-cli,然后就可以运行 pm2 start ./server.js --interpreter ./node_modules/babel-cli/bin/babel-node.js

  • 使用 `"@babel/cli": "^7.0.0"` 路径是 `./node_modules/@babel/cli/bin/babel.js` (5认同)