Node.js: при попытке запустить производственную сборку возникает следующая ошибка: import _Promise from "../../core-js/promise"; SyntaxError: неожиданный идентификатор

У меня есть бэкэнд hapi.js с интерфейсом Vue (с использованием Vue CLI). Я использую Node версии 12.10.0 в Ubuntu 16.04.

В режиме разработки все работает нормально. Когда я запускаю свое приложение в процессе сборки, оно строится без ошибок. Проблема возникает, когда я пытаюсь запустить приложение в производственной среде. Это мои сценарии NPM:

"scripts": {
  "dev": "npm-run-all --parallel dev:vue dev:hapi",
  "dev:vue": "vue-cli-service serve",
  "dev:hapi": "NODE_ENV=development node-dev --no-notify src/server/server.js --exec babel-node",
  "build": "npm-run-all --serial build:vue build:hapi",
  "build:vue": "vue-cli-service build",
  "build:hapi": "NODE_ENV=production babel src/server --out-dir dist/server --copy-files",
  "prod": "NODE_ENV=production node dist/server/server.js",
  ...
}

После запуска npm run prod Я получаю эту ошибку в своем терминале:

/path/to/node_modules/@babel/runtime-corejs2/helpers/esm/asyncToGenerator.js:1
import _Promise from "../../core-js/promise";
       ^^^^^^^^

SyntaxError: Unexpected identifier

Это мой babel.config.js файл:

module.exports = {
  presets: [
    "@vue/app",
    "@babel/preset-env",
  ],
  plugins: [
    ["@babel/plugin-transform-runtime", {
      corejs: 2,
    }]
  ]
};

Я думал @babel/plugin-transform-runtimeплагин должен был решить любые проблемы, которые у меня могли возникнуть с Promises. Очевидно, Node v12 должен поддерживать Promises из коробки, но у меня, очевидно, все еще возникают проблемы.

Кто-нибудь знает, что происходит в этой ситуации и что я могу сделать, чтобы это исправить?

Спасибо!

1 ответ

Я наконец нашел ответ. Мне пришлось изменить конфигурации в моемbabel.config.jsфайл. Я включил вавилонenvвариант и определил отдельные конфигурации для клиента и сервера. Это то, что у меняbabel.config.js файл теперь выглядит так:

module.exports = {
  env: {
    client: {
      presets: [
        "@vue/app",
      ]
    },
    server: {
      presets: [
        "@babel/preset-env",
      ],
      plugins: [
        ["@babel/plugin-transform-runtime", {
          corejs: 2,
        }]
      ]
    }
  }
};
Другие вопросы по тегам