pm2 Неожиданный импорт токенов - PullRequest
2 голосов
/ 21 января 2020

У меня есть веб-сервер, который работает, когда я использую node или nodemon (например, «индекс nodemon. js»). Однако, когда я пытаюсь использовать pm2 («стартовый индекс pm2. js»), я получаю «SyntaxError: Неожиданный импорт токена». Полный журнал ошибок приведен ниже. Что я тут не так делаю?

/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:29
import(process.env.pm_exec_path);
^^^^^^

SyntaxError: Unexpected token import 
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)

Ответы [ 3 ]

4 голосов
/ 21 января 2020

Исправьте ту же проблему.

pm2 выпустила версию 4.2.2, которая работает только с Node 10.x или выше, поэтому:

Лучшее решение - обновить ваш узел с 9.x до 10.x или лучше.

В моем случае я хотел придерживаться узла 9, поэтому я установил версию pm2 до версии 4.2.1

Я использую npm для установки pm2 в Мой Dockerfile:

Изменение:

RUN npm install -g webpack@4.29.3 pm2

Кому:

RUN npm install -g webpack@4.29.3 pm2@4.2.1

Исправит проблему и позволит вам продолжить работу с узлом 9 и pm2 4.2.1

Если вы устанавливаете pm2 другим способом, опубликуйте сведения об установке, и я могу порекомендовать, как это исправить.

1 голос
/ 07 апреля 2020

После обновления узла до версии 12 (и переустановки pm2) создается впечатление, что pm2 пытался запустить мои службы, используя старую сохраненную конфигурацию. Все, что мне нужно было сделать, это удалить и запустить их бесплатно sh.

pm2 delete <app-name>
pm2 start src/app.js --name="<app-name>"
0 голосов
/ 09 марта 2020

Для последней версии pm2 вам нужно создать файл ecosystem.config.js, содержимое которого выглядит как

module.exports = {
  apps : [{
    name: "mp-todo",
    script: "./build/index.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    },
    log_date_format: 'YYYY-MM-DD HH:mm Z',
    combine_logs: true
  }]
}

, и вы можете использовать pm2 start ecosystem.config.js --env production для использования переменных среды в файле конфигурации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...