Webpack / Babel / React Build-Fehler: "Unbekannte Option: foo / node_modules / react / react.js.Children"

80

Ich versuche ein Projekt mit Webpack zu erstellen und mit dieser Webpack-Konfiguration zu reagieren:

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"
      },
    ]
  }
};

Ich bin mir sicher, dass ich auch die benötigten pm-Module habe und Webpack installiert habe, aber wenn ich Webpack ausführe, bekomme ich:

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

Irgendwelche Ideen?

SuperUberDuper
quelle
1
Können Sie auch Ihre main.js einfügen?
Wint

Antworten:

192

Entschuldigung, ich habe vergessen zu installieren babel-preset-react:

$ npm install babel-preset-react --save-dev
SuperUberDuper
quelle
19
Tut mir nicht leid Nirgendwo heißt es, dass dieses NPM-Paket installiert werden muss.
AxeEffect
Warten Sie, warum brauchen Sie das Paket? Es installiert die Flow-Unterstützung, die Sie möglicherweise verwenden oder nicht. Benötigen Sie syntax-jsx?
U Avalos
Habe es nicht für mich repariert. Wo steht, dass Sie dies installieren müssen?
Sudo
0

Ich wollte nur hinzufügen, dass ich den Fehler erhalten habe, nachdem ich ein altes npm-Modul deinstalliert habe, das ich nicht mehr in meinem Projekt verwendet habe. Was seltsam war, weil ich es nirgendwo verwendet habe - wie kann die Deinstallation von etwas, das nirgendwo verwendet wird, einen Fehler verursachen?

Es stellte sich heraus, dass eine dieser Modul -Unterabhängigkeiten eine Babel-Preset-Reaktion aufwies, die ich beim Start in meinem eigenen Projekt nicht installiert hatte. Wenn Sie dieses Paket deinstallieren, wird auch die kritische Babel-Preset-Reaktion deinstalliert!

Über ein Jahr lang konnte meine Reaktions-App dank der Subabhängigkeit eines anderen Pakets kompiliert werden ...


Also ja, die Installation von babel-preset-react hat das Problem für mich gelöst.

Chris
quelle