javascript - 使用 `Unexpected token import` 时,`webpack.config.babel.js` 中的 `{modules: false}`

标签 javascript webpack ecmascript-6 babeljs webpack-2

我有一个 React 项目,它使用 Webpack 作为模块 bundler ,并使用 babel-loader 将其转换为 ES5,使用以下设置:

module: {
  rules: [
    {
      test: /\.jsx?$/,
      exclude: /node_modules/,
      use: [
        {
          loader: "babel-loader"
        }
      ]
    }
  ]
},

这些选项在独立的 .babelrc 文件中设置。

通天塔 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 设置为以下内容:

{
  "presets": ["es2015"]
}

.babelrc 设置将应用于 webpack.config.babel.js 文件。

接下来,更改 Webpack 配置以包含您想要应用于应用程序代码的选项。

module: {
  rules: [
    {
      test: /\.jsx?$/,
      exclude: /node_modules/,
      use: [
        {
          loader: "babel-loader",
          options: {
            "presets": [["es2015", {"modules": false}], "react"]
          }
        }
      ]
    }
  ]
},

关于javascript - 使用 `Unexpected token import` 时,`webpack.config.babel.js` 中的 `{modules: false}`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41790153/

相关文章:

javascript - 寻找 Node "util.inherits"的 JavaScript 实现

javascript - THREE.js 不使用 .mtl 渲染 .obj - 为 THREE.js 导出文件

javascript - 使用 Webpack 延迟加载 AngularJS Controller

javascript - 获取数组中特定参数为空的第一项

javascript - 在 JavaScript 中,有没有办法继承 Number 函数?

javascript - 将两个 javascript 调用合并为一个涉及 GET 请求的调用

webpack - 远程调试 VueJS webpack 项目

javascript - webpack.config.js 是否已从 Ionic 2 RC3 中删除

javascript - 在 es6 中迭代对象并返回新对象

javascript - 如何保留对象的某些属性?