Webpack / Babel / React构建错误:“未知选项:foo / node_modules / react / react.js.Children”


80

我正在尝试使用webpack构建项目并对此webpack配置做出反应:

var path = require('path');
var webpack = require('webpack');

module.exports = {
  entry: [
    'babel-polyfill',
    './app/less/main.less',
    './app/main.js',
    'webpack-dev-server/client?http://localhost:8080'
  ],
  output: {
    publicPath: '/',
    filename: 'dist/main.js'
  },
  debug: true,
  devtool: 'source-map',
  module: {
    loaders: [
      {
        test: /\.js$/,
        include: path.join(__dirname, 'app'),

        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015']
        }
      },
      {
        test: /\.less$/,
        loader: "style!css!autoprefixer!less"
      },
    ]
  }
};

我确定我也有需要的pm模块并安装了webpack,但是运行webpack时会得到:

Module build failed: ReferenceError: [BABEL] /Users/me/foo/app/main.js: Unknown option: foo/node_modules/react/react.js.Children

有任何想法吗?


1
您还可以粘贴main.js吗?
Wint

Answers:


192

对不起,我忘了安装babel-preset-react

$ npm install babel-preset-react --save-dev

19
不要后悔 没什么地方需要安装此NPM软件包的。
AxeEffect

等待,您为什么需要那个包裹?它安装了您可能正在使用或未在使用的流程支持。是否需要语法jsx?
U阿瓦洛斯

没有为我修复它。它在哪里说您必须安装此程序?
sudo

0

我只是想补充一点,我卸载了我的项目中不再使用的旧npm模块之后,我收到了错误消息。哪个很奇怪,因为我没有在任何地方使用它-卸载没有在任何地方使用的东西怎么会导致错误?

原来,其中一个模块子依赖项具有babel-preset-react,我在启动该项目时会错过将其安装到自己的项目中的机会。因此,卸载该软件包也将卸载关键的babel-preset-react!

一年多来,由于另一个软件包的子依赖关系,我的react应用程序可以编译了。


所以是的,安装babel-preset-react为我解决了这个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.