configuration.module має невідоме властивість "завантажувачі"


136

мій вихід помилки:

Недійсний об'єкт конфігурації. Webpack ініціалізований за допомогою об'єкта конфігурації, який не відповідає схемі API. - config.module має невідоме властивість "завантажувачі". Ці властивості: об'єкт {exprContextCritical?, ExprContextRecursive?, ExprContextRegExp?, ExprContextRequest?, NoParse?, Правила?, DefaultRules?, UnknownContextCritical?, UnknownContextRecursive?, UnknownContextRegExp?, UnknownContextRequest?, UnsafeCache?, WrappedContextCritical?, WrappedContextRecursive?, WrappedContextRegExp ?, strictExportPresence ?, strogoThisContextOnImports? } -> Параметри, що впливають на звичайні модулі ( 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

Ви повинні змінити loadersна веб- rulesпакет 4:

зміни:

loaders 

до:

rules

джерело: Навантажувачі

Приклад:

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

1
Це помилка? Це має бути rulesв веб-пакеті 4.
Гріх

ви повинні використовувати правила у
вебпакеті

2
змінити навантажувачі на правила в webpack 4 ... у випадку, якщо про це потрібно сказати ще раз: /
Гельмут Гранда

1
Вам слід пояснити у своїй відповіді, що причиною зміни є
веб-пакет


2

Наведені вище відповіді працюють, але ми можемо вирішити цю проблему, змінивши версію webpack та webpack-dev-сервера на

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

Це також може вирішити питання. Сподіваюся, це допоможе.


Я дав тобі підступ. Єдина проблема полягає в тому, що люди хочуть, щоб версії рамок та інструментів отримували нові функції, не поверталися до старих версій лише для того, щоб переконатися, що їм не потрібно змінювати свої конфігураційні файли. Можливо, непотрібно змінити конфігураційний файл, щоб він узгодився з новим способом роботи інструменту - це не погано. Якщо тільки це неможливо.
Еніола

Дякую @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.