Помилка побудови Webpack / Babel / React: «Невідомий варіант: foo / node_modules / response / response.js.Children»


80

Я намагаюся побудувати проект за допомогою 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?
— Зинт

Відповіді:


192

На жаль, я забув встановити babel-preset-react:

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

19
Не шкодуй. Ніде не сказано, що цей пакет NPM не потрібно встановлювати.
— AxeEffect

почекайте, навіщо вам цей пакет? Він встановлює підтримку потоку, якою ви можете або не використовувати. Вам потрібен синтаксис-jsx?
— U Avalos

Не виправив це для мене. Де сказано, що це потрібно встановити?
— судо

0

Я просто хотів додати, що помилку отримав після видалення старого модуля npm, який я вже не використовував у своєму проекті. Що було дивним, тому що я його ніде не використовував - як видалення того, що ніде не використовується, може спричинити помилку?

Виявляється, одна із залежностей цього модуля мала babel-preset-response, яку я пропустив встановити у своєму власному проекті, коли його запускав. Таким чином, видалення цього пакету також видалило критичну реакцію babel-preset-response!

Більше року мій додаток для реагування міг компілювати завдяки залежності іншого пакета ...


Так що так, встановлення babel-preset-response вирішило проблему для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.