我想用pm2包管理我的节点进程。 如果我的代码中没有任何es6语法,所以我不需要添加babel-node,并且没有任何es6语法代码,我可以用pm2代码运行我的代码
pm2 start server.js
但是只要我添加任何es6语法代码行,就像这样
import express from 'express';
我收到意外令牌导入的错误。
如您所知,要解决此问题,我们必须添加babel-node软件包。
但是当我使用这行命令编译我的代码时
pm2 start server.js --interpreter babel-node
我收到此错误
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)
这个奇怪的是,如果我不使用pm2并使用这行代码运行代码
babel-node server.js
每件事都没问题。
任何人都可以帮助我吗?
答案 0 :(得分:5)
使用yarn add babel-cli
在您的项目中安装babel-cli,然后您可以运行
pm2 start ./server.js --interpreter ./node_modules/babel-cli/bin/babel-node.js
答案 1 :(得分:1)
我刚刚开始使用pm2,我发现this有帮助。
你有你的npm脚本来运行es6 js,比如
{
...
"scripts": {
"server": "babel-node ./src/server.js"
},
...
}
然后使用pm2运行它,你使用pm2 start npm -- run server
确保全局安装babel-cli
。
答案 2 :(得分:0)
检查pm2日志文件以跟踪错误。 日志文件的位置在/root/.pm2 /
答案 3 :(得分:0)
我在使用babel的Node.js项目中解决了此问题。
首先您必须拥有
"devDependencies": {
"@babel/core": "^7.11.6",
"@babel/node": "^7.10.5",
"@babel/preset-env": "^7.11.5",
"eslint": "^7.9.0"
}
在package.json文件中。
然后您可以使用
pm2 start bin/www --interpreter node_modules/@babel/node/bin/babel-node.js
终端上的命令。就是这样,您的项目将支持babel配置。 :)