Как использовать babel-node с pm2

Я хочу управлять процессом узла с помощью пакета pm2. если у меня нет какого-либо синтаксиса es6 в моем коде, поэтому мне не нужно добавлять babel-узел, и без какого-либо синтаксического кода 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

все отлично.

Может кто-нибудь мне помочь?

7 ответов

Я только начал использовать pm2 и нашел, что это помогло.

У вас есть скрипт npm для запуска es6 js, что-то вроде

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

Затем, чтобы запустить это с pm2 вы используете pm2 start npm -- run serverУбедитесь, что у вас есть babel-cli установлен глобально.

Установите babel-cli в свой проект с помощью yarn add babel-cli и тогда вы можете запуститьpm2 start ./server.js --interpreter ./node_modules/babel-cli/bin/babel-node.js

используйте эту команду для запуска проекта

      pm2 start --interpreter babel-node server.js

pm2 start --interpreter Babel-node server.js

используйте эту команду для запуска проекта на сервере

Проверьте файлы журнала pm2, чтобы отследить ошибку. расположение файлов журнала находится в /root/.pm2/

Я исправил эту проблему в своем проекте Node.js, который использую babel.

Сначала вы должны иметь

"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.:)

Я читал это, я нашел что-то, связанное с этим пунктом «Ошибка: spawn babel-node ENOENT». Я думаю, что проблема не в pm2, она связана с путем, я имею в виду, что проблема в вашей среде!

ну как исправить!

во-первых, позвольте мне быть очень ясным, я работаю с pm2 около 4 лет, и, на мой взгляд, он лучший, но в среде Windows он слабый! так что мое решение, чтобы не терять время, это nodemon для окон, если вы используете Linux "проблемы WALA nop",

мой метод! на моем сервере (Linux или Ubuntu) для производства или тестирования я всегда использую pm2 и в качестве зависимости я устанавливаю nodemon на тот случай, если моя команда захочет использовать его в Windows!

**красные линии для Linux и зеленые для Windows **

другой способ использования - установить ubuntu на окна из WINDOWS STORE.

Это позволяет вам запускать терминал Linux в Windows, но вы должны установить nodejs на свой локальный экземпляр!

этот пример был для друга, как он терял время, любя pm2, он использует этот способ, и он счастливYYYYY

Другие вопросы по тегам