«Невозможно использовать оператор импорта вне модуля» с установленным параметром --experimental-modules - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь использовать импорт ES в своем файле конфигурации Webpack, но у меня не получается, чтобы Node их принял.

webpack.config. js:

import webpack from 'webpack';

export default {
  mode: 'development'
};

И в пакете. json:

{
  "scripts": {
    "start": "node --experimental-modules node_modules/webpack-dev-server/bin/webpack-dev-server.js"
  }
}

Однако, когда я пытаюсь запустить его, используя npm start, я получаю следующую ошибку:

C:\redacted\webpack.config.js:1
import webpack from 'webpack';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1072:16)
    at Module._compile (internal/modules/cjs/loader.js:1122:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at WEBPACK_OPTIONS (C:\redacted\node_modules\webpack-cli\bin\utils\convert-argv.js:114:13)
    at requireConfig (C:\redacted\node_modules\webpack-cli\bin\utils\convert-argv.js:116:6)
    at C:\redacted\node_modules\webpack-cli\bin\utils\convert-argv.js:123:17

Что я делаю неправильно? Как я могу заставить его соблюдать флаг --experimental-modules и разрешить оператор import?

Соответствующие версии:

  • Узел: 12.16.1
  • npm: 6.13.4
  • webpack: 4.41.8
  • webpack-cli: 3.3.11
  • webpack-dev-server: 3.10.3

1 Ответ

0 голосов
/ 28 марта 2020

На основе NodeJS документов , Node будет обрабатывать файлы как модули ES, когда

  • Файлы с окончанием .mjs расширение
  • Файлы оканчивается на .js, когда ближайший родительский файл package.jso n содержит поле верхнего уровня type со значением module.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...