node.js - Webpack CLI 忽略 .babelrc

标签 node.js webpack babeljs

我正在尝试使用 wepback cli 构建一个非常简单的脚本......几乎:

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

我在运行

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

但这给了我:

ERROR in ./foo.js
Module parse failed: /dir/foo.js Line 1: Unexpected token
You may need an appropriate loader to handle this file type.
| import 'somelib';
| import '../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 并且我没有看到任何 cli flag对于 webpack,它允许您指定 babel 配置,包括插件/预设。

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

最佳答案

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

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

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

npm i babel-loader -D

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

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

关于node.js - Webpack CLI 忽略 .babelrc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35905274/

相关文章:

angularjs - 如何将 npm 中的 ng 正确配置为普通 CLI 命令?

node.js - 如何启动 Storybook?

javascript - 在 audiosprite 中加载错误 - 找不到模块 : 'child_process'

javascript - Babel.js 尾调用中的 "_function: while"语法是什么?

node.js - Node.js插件权限

javascript - 效率问题 : Is it better to concatenate code into a single file or to make local modules?

javascript - 如何对依赖于 Firebase 引用的函数进行单元测试?

node.js - 为什么我会在 : "deasync" & "node build.js", "fsevents"& "node install"、 "node-gyp"、 "make"上出现这些错误 "yarn add"错误

node.js - 如何在 Babel 6 中使用 babel-runtime?

reactjs - 我如何选择 React Styled-Components 来生成物理 CSS 文件?