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
Вопросы:
- Как заставить работать импорт ES6?
- Это возможно из коробки, т.е. без каких-либо пакетов
babel-loader
?