javascript - .babelrc 中指定的 Babel 6 预设不起作用

标签 javascript webpack babeljs

正如标题所暗示的,基本上根据文档,对于新的 Babel 6,我们现在应该传入插件/预设,因为默认情况下它不会对我们的代码做任何事情。

所以我在我的项目目录中创建了一个 .babelrc 文件,其中包含以下内容(就像在文档中一样)

{
  "presets": ["es2015"]
}

但是这是行不通的。 因为我使用的是 webpack 和 babel-loader,所以我遇到了一个不同的答案,建议在 webpack 配置中加入这样的内容:

{
     test: /\.js$/, exclude: /node_modules/, loader: "babel", query: {
         presets: ["es2015"]
     }
}

这行得通。 所以我的问题是,这是否是新 Babel 中的错误,还是我遗漏了明显的错误?我曾经使用 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"}

最佳答案

看来是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 就足够了。

关于javascript - .babelrc 中指定的 Babel 6 预设不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33593211/

相关文章:

javascript - Node.js 无法发送脚本?

javascript - jQuery - 多个元素类型上的每个循环

javascript - <a> 标签上的打开文件对话框

reactjs - 延迟加载 react-router-dom,webpack 不工作

javascript - Webpack + React 和 Google Chrome 43.0.2357.65

vue.js - “您可能需要一个合适的加载器来处理这种文件类型。”在 Vue.js 项目中

javascript - 导出的函数未定义

javascript - React,根据参数检查状态是否存在 key 对

javascript - 为什么我在使用 youtube api 时收到未经授权的消息

css - webpack - 需要 ('node_modules/leaflet/leaflet.css' )