12

我想用 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

一切都好。

4

5 回答 5

13

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

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

{
  ...
  "scripts": {
    "server": "babel-node ./src/server.js"
  },
  ...
}

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

于 2018-03-25T11:26:59.303 回答
13

在你的项目中安装 babel-cliyarn 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

于 2018-06-20T15:08:17.970 回答
0

我正在阅读这篇文章,我发现与这一点有关的内容“错误:spawn babel-node ENOENT”我认为问题不在于 pm2,它与路径有关,我的意思是问题出在您的环境!

好吧,如何解决它!

首先,让我非常清楚这一点,我已经使用 pm2 大约 4 年了,我认为这是最好的,但在 windows 环境下它是 creasy!所以我不浪费时间的解决方案是 Windows 的 nodemon,如果你使用的是 Linux“WALA nop 问题”,

我的方式!在用于生产或测试的服务器(Linux 或 Ubuntu)中,我总是使用 pm2 并且作为依赖项,我安装 nodemon 以防我的团队想在 Windows 上使用它!

例如 babel pm2 nodemon

**红线代表 Linux,绿线代表 Windows **

另一种使用方法是从 WINDOWS STORE 在 windows 上安装 ubuntu

在此处输入图像描述

这允许您在 Windows 上运行 Linux 终端,但您必须在本地实例上安装 nodejs!

这个例子是给朋友的,他是如何失去时间爱上 pm2 的,他正在使用这种方式,他很高兴 YYYYY

于 2021-12-31T04:15:07.353 回答
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 配置。:)

于 2020-09-29T17:20:30.007 回答
0

检查 pm2 日志文件以跟踪错误。日志文件的位置在 /root/.pm2/

于 2019-10-05T11:47:16.163 回答