使用"React with Express application using";pm2启动&quo



我有一个以Node为服务器的React应用程序,我正在ES6中编写代码,并使用babel进行转换。我正在使用Windows操作系统。我使用NodeMon来观察变化,它在开发中运行良好。我正在为该应用程序进行生产配置,并考虑将PM2用于开发和生产。

下面是我的包.json中的脚本,

"scripts": {
"dev": "pm2 start --watch --interpreter babel-node src/server/server.js  --name appDev",
...
"prod": "pm2 start build/server/server.js -i max --name appProd"
}

我在src文件夹中有ES6代码,在build文件夹中有transpiled的ES5代码。如果我删除"-I max","prod"命令就可以正常工作[无限命令提示开始打开"-I max"。希望部署后在服务器中可以正常工作]。

现在的问题是,"dev"脚本总是导致"errored"状态,当我检查状态时,错误日志是空的。

不知道发生了什么事?我现在将在dev中运行NodeMon,在prod中运行PM2,但为什么PM2对ES6和--interpreter babel节点有问题?

更新:我在全局安装后尝试了--interpreter babel-cli,但失败,返回错误[PM2][ERROR] Interpreter babel-cli does not seem to be available。我在全球和本地都有babel cli。

甚至连pm2 start app.js --interpreter ./node_modules/.bin/babel-node都不起作用。

我在部署最新(12.16.2(版本的节点时遇到问题。我在ES6和进口方面遇到了问题。我知道有更复杂的解决方案可以解决这个问题,但备份到节点12.4.0为我解决了这个问题。注意:节点12.4.0是比12.16.2更早的版本。我选择了12.4.0版本,因为这就是数字海洋"节点"服务器的初始化方式。我想他们的服务器人员可能比我了解得更多,可以说,他们只是决定在测试中作弊。

我对12.4.0没有问题,你可以很容易地从节点网站下载早期版本。如果您计划在Linux服务器上安装它,我建议您使用nvm。我曾使用nvm返回12.4.0,但仍然存在问题(很抱歉,我忘记了细节(。我刚刚用普通的Ubuntu18.04 LTS从一个新的映像中重拨了服务器,现在我很擅长。即使使用我用来开发的节点的本地Windows安装,我也必须进行完全卸载和干净安装以避免出现问题。如果可能的话,强烈推荐这条路线。

祝你好运。

最新更新