Не удается использовать импорт ES6 в конфигурации веб-пакета - PullRequest
0 голосов
/ 23 мая 2018

CommonJS import const webpack = require('webpack'); работает нормально, но ES6 import webpack from 'webpack'; нет.

из Документация веб-пакета :

Версия 2 веб-пакета поддерживает модуль ES6собственный синтаксис.

Но он не работает для меня из коробки.

Я также пробовал:

  • использовать babel-loaderдля файлов JS;
  • добавить «babel» к именам файлов конфигурации.

Но это все не работает.

package.json

"scripts": {
    "build:dev": "webpack --config webpack.config.dev.babel"
},
"devDependencies": {
    "babel-loader": "^7.1.4",
    "webpack": "^4.8.3",
    "webpack-cli": "^2.1.3",
    "webpack-merge": "^4.1.2"
}

webpack.config.common.babel.js

export const /* in this implied like default */ module = {
    loaders: [
        {
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: '/node_modules/'
        }
    ],
};

webpack.config.dev.babel.js

import webpack from 'webpack';
import merge from 'webpack-merge';
import commonConfig from './webpack.config.common.babel';

export default merge(commonConfig, {
    mode: 'development',
    plugins: [
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': JSON.stringify('development')
        })
    ]
});

.babelrc

{
    "presets": ["es2015"]
}

И когда я набираю npm run build:dev, он выбрасывает:

import webpack from 'webpack';
^^^^^^

SyntaxError: Unexpected token import

Вопросы:

  1. Как заставить работать импорт ES6?
  2. Это возможно из коробки, т.е. без каких-либо пакетов babel-loader?

1 Ответ

0 голосов
/ 23 мая 2018

Ну, первое, что я заметил, это то, что вы не можете использовать «импорт» в вашем файле веб-пакета.Вам нужно "require":

  const webpack = require('webpack');

Вы не можете использовать импорт, потому что это ES6, и как вы можете использовать ES6, если вы еще не установили babel?Ни один движок JS (afaik) изначально не поддерживает ES6, и определенно не Node.

Кроме того, я думаю, что вы получите предупреждение для ES2015 - я думаю, что это должно быть "babel-preset-env" сейчас.

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