正如标题所示,基本上根据文档,使用新的Babel 6我们现在应该传递插件/预设,因为默认情况下它不会对我们的代码做任何事情。
所以我在项目目录中使用以下内容创建了一个.babelrc文件(就像在文档中一样)
{
"presets": ["es2015"]
}
然而,这不起作用。 由于我使用的是webpack和babel-loader,我遇到了一个不同的答案,建议在webpack配置中输入这样的内容:
{
test: /\.js$/, exclude: /node_modules/, loader: "babel", query: {
presets: ["es2015"]
}
}
这很有效。 所以我的问题是这是否是新巴别的错误或者我错过了一些明显错误的东西?我以前使用Babel 5和Webpack,我能够在.babelrc中指定babel配置没问题...
提前致谢
编辑:问题只发生在babel加载器之前运行eslint加载器时。然而,刚刚更新到最新的babel-loader 6.2.0并且一切正常。
module: {
preLoaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: "eslint"}
],
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: "babel"},
{ test: /\.css$/, exclude: /node_modules/, loader: "style!css!postcss"}
答案 0 :(得分:2)
这似乎是babel-loader
的问题。它应该在版本6.1.0中修复。
您可以看到release/v6.1.0摘要:
* release/v6.1.0:
Update CHANGELOG.md and package.json
Set source file name relative to options.sourceRoot
Allow babelrc to be specified for cache purposes
Add BABEL_ENV || NODE_ENV to default cacheIdentifier
所以更新babel-loader就足够了。