Configuration.module имеет неизвестное свойство loaders

мой вывод ошибки:

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.module has an unknown property 'loaders'. These properties are valid: object { exprContextCritical?, exprContextRecursive?, exprContextRegExp?, exprContextRequest?, noParse?, rules?, defaultRules?, unknownContextCritical?, unknownContextRecursive?, unknownContextRegExp?, unknownContextRequest?, unsafeCache?, wrappedContextCritical?, wrappedContextRecursive?, wrappedContextRegExp?, strictExportPresence?, strictThisContextOnImports? } -> Options affecting the normal modules (NormalModuleFactory).

мой webpack.config.js:

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

var BUILD_DIR = path.resolve(__dirname, 'src/client/public');
var APP_DIR = path.resolve(__dirname, 'src/client/app');

var config = {
  entry: APP_DIR + '/index.jsx',
  module : {
    loaders : [
      {
        test : /\.jsx?/,
        include : APP_DIR,
        loader : 'babel-loader'
      }
    ]
  },
  output: {
    path: BUILD_DIR,
    filename: 'bundle.js'
  }

};


module.exports = config;

моя версия веб-пакета:

[email protected]
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
155
0
79 454
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Вы должны изменить loaders на rules в webpack 4:

менять:

loaders 

к:

rules

источник: Погрузчики

Пример:

module.exports = {
  module: {
    rules: [
      { test: /\.css$/, use: 'css-loader' },
      { test: /\.ts$/, use: 'ts-loader' }
    ]
  }
};

Это опечатка? В webpack 4 должен быть rules.

Sin 20.03.2018 23:51

вы должны использовать правила в webpack 4.

S.M_Emamian 21.03.2018 07:10

измените загрузчики на правила в webpack 4 ... на случай, если нужно будет сказать еще раз: /

Helmut Granda 21.05.2018 19:06

В своем ответе вы должны объяснить, что причиной изменения является webpack 4.

kojow7 07.06.2018 19:31

Используйте rules в webpack 4 вместо loaders.

https://webpack.js.org/concepts/loaders/

Вышеуказанные ответы работают, но мы можем решить эту проблему, изменив версию webpack и webpack-dev-server на

"webpack": "3.8.1",
"webpack-dev-server": "2.9.4"

Это также может решить проблему. Надеюсь, это поможет.

Я вас подбросил. Единственная проблема заключается в том, что люди хотят обновлять версии фреймворков и инструментов, чтобы получить новые функции, а не возвращаться к более старым версиям, просто чтобы убедиться, что им не нужно изменять свои файлы конфигурации. Возможно, неплохо потрудиться изменить файл конфигурации, чтобы он соответствовал новому способу работы инструмента. Разве что это невозможно.

Eniola 10.03.2019 19:17

Спасибо @Eniola, да, ты прав. Как я уже упоминал, ответ S.M_Emamian правильный, но мой ответ будет работать, если кто-то согласится работать с более старой версией webpack.

Anshul 12.03.2019 09:27

Вы должны использовать утилита миграции для переноса файлов конфигурации веб-пакета, у меня это сработало.

документация по миграции также полезен.

Работаю для меня ниже webpack.config.js

module.exports = {
    entry: [
        '.src/index.js'
    ],
    output:{
        path: __dirname,
        filename: 'app/js/main.js'
    },
    module:{
        rules: [
          { test: /\.css$/, use: 'css-loader' },
          { test: /\.ts$/, use: 'ts-loader' }
        ]
    }
}

Другие вопросы по теме