Файл configuration.module имеет неизвестное свойство 'loaders'


136

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

Неверный объект конфигурации. Webpack был инициализирован с использованием объекта конфигурации, который не соответствует схеме API. - configuration.module имеет неизвестное свойство 'loaders'. Эти свойства действительны: object {exprContextCritical ?, exprContextRecursive ?, exprContextRegExp ?, exprContextRequest ?, noParse ?, rules ?, defaultRules ?, unknownContextCritical ?, unknownContextRecursive ?, unknownContextRegExp ?, unknownContextRecursiveContext wrappedCache ?, unsaptext? ? strictExportPresence ?, strictThisContextOnImports? } -> Параметры, влияющие на обычные модули ( 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;

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

webpack@4.1.1

Ответы:


317

В webpack 4 вам следует изменить loadersна rules:

изменение:

loaders 

чтобы:

rules

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

Пример:

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

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

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

2
Измените загрузчики на правила в веб-пакете 4 ... на случай, если это нужно будет повторить: /
Гельмут Гранда

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


2

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

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

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


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

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


0

Работая для меня ниже 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' }
        ]
    }
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.