我有一个React项目,使用Webpack作为模块打包工具,并使用
选项在独立的
Babel 6.13.0支持ECMAScript模块,这意味着ECMAScript模块不需要先转换为CommonJS模块。为了获取此行为,文档建议我们在
然而,当我尝试使用此设置运行Webpack时,它会返回错误:
我猜测这是因为
babel-loader
将其转换为ES5,以下是设置内容:module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: [
{
loader: "babel-loader"
}
]
}
]
},
选项在独立的
.babelrc
文件中设置。Babel 6.13.0支持ECMAScript模块,这意味着ECMAScript模块不需要先转换为CommonJS模块。为了获取此行为,文档建议我们在
.babelrc
中使用此设置。{
presets: [["es2015", { "modules": false }], "react"]
}
然而,当我尝试使用此设置运行Webpack时,它会返回错误:
$ ./node_modules/.bin/webpack
/home/d4nyll/foo/bar/webpack.config.babel.js:1
(function (exports, require, module, __filename, __dirname) { import webpack from 'webpack';
^^^^^^
SyntaxError: Unexpected token import
我猜测这是因为
babel-loader
不会处理webpack.config.babel.js
,所以它无法识别import
关键字。当移除{"modules": false}
时,错误就不再出现了,但我需要这个功能。我该如何让Babel识别webpack.config.babel.js
?
babelrc: false
,否则您的webpack配置中的设置将被您的.babelrc文件覆盖。 - yujingzwebpack --config ./webpack.config.babel
,你会得到相同的错误,要修复它,请运行webpack --config ./webpack.config.babel.js
。你需要在配置文件中添加 'js'。 - Anenthenv
预设,它比其他所有预设都更好。 - griest