【问题标题】:Webpack CLI ignores .babelrcWebpack CLI 忽略 .babelrc
【发布时间】:2016-03-10 19:05:17
【问题描述】:

我正在尝试使用 wepback cli 来构建一个非常简单的脚本......差不多:

import 'somelib';
import '../mylib';

我在跑步

webpack --output-filename index.js foo.js

但这给了我:

./foo.js 中的错误
模块解析失败:/dir/foo.js 第 1 行:意外令牌
您可能需要适当的加载程序来处理此文件类型。
|导入'somelib';
|导入'../mylib';
|

这表明 webpack 没有正确预处理文件,但我在同一目录中有一个 .babelrc

{
  "presets": ["es2015", "stage-0"],
  "plugins": ["transform-runtime", "transform-regenerator",
    "syntax-async-functions", "transform-async-to-generator"]
}

我确实安装了相应的 babel 预设和插件,实际上babel 确实在foo.js 上正常工作。

我为 Babel 和 Webpack 找到的文档似乎说它将自动使用 .babelrc,我没有看到任何用于 webpack 的 cli flag 可以让您指定 babel 配置,包括插件/预设。

有什么方法可以让 webpack cli 使用我在 .babelrc 中指定的插件和预设?

【问题讨论】:

  • 您是否将babel-loader 添加到您的 webpack 配置文件中?

标签: node.js webpack babeljs


【解决方案1】:

要将 babel 与 webpack 一起使用,您应该安装并注册 babel-loader

babel-loader 尊重.babelrc 文件,因此不需要任何额外配置。

所以,首先你必须安装它:

npm i babel-loader -D

那么您应该在 CLI 命令中使用适当的 --module-bind flag

webpack --module-bind 'js=babel' --output-filename index.js foo.js

或为您的应用程序创建 webpack 配置文件(webpack.config.jswebpack.config.babel.js):

module.exports = {
  entry: './foo.js',
  output: {
    filename: 'index.js'
  },
  module: {
    loaders: [{
      test: /\.jsx?$/,
      exclude: /(node_modules|bower_components)/,
      loader: 'babel'
    }]
  }
}

因此无需指定任何命令行参数来构建您的项目:

webpack

【讨论】:

  • 你知道我如何从 cli 中指定 exclude 片段吗?
  • @ExplosionPills,但是你为什么不想使用配置文件呢?
  • 我希望能够在一堆不同的位置重用命令单行,而不必为每个位置重新创建一个配置文件。
  • @ExplosionPills 好吧,CLI 参数将覆盖您放入配置文件的任何内容。您甚至可以在配置文件中省略 entryoutput 块,因此您将不得不在每次调用时在 CLI 命令中指定它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 2018-07-05
  • 2017-02-01
  • 1970-01-01
  • 2018-10-14
相关资源
最近更新 更多