configuration.module possui uma propriedade desconhecida 'loaders'

136

minha saída do erro:

Objeto de configuração inválido. O Webpack foi inicializado usando um objeto de configuração que não corresponde ao esquema da API. - configuration.module possui uma propriedade desconhecida 'loaders'. Essas propriedades são válidas: objeto {exprContextCritical ?, exprContextRecursive ?, exprContextRegExp ?, exprContextRequest ?, noParse ?, regras ?, defaultRules ?, unknownContextCritical ?, unknownContextRecursive? ?, strictExportPresence ?, strictThisContextOnImports? } -> Opções que afetam os módulos normais ( NormalModuleFactory).

meu 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;

minha versão do webpack:

webpack@4.1.1
S.M_Emamian
fonte

Respostas:

317

Você deve mudar loaderspara rulesno webpack 4:

mudança:

loaders 

para:

rules

fonte: Carregadores

Exemplo:

module.exports = {
  module: {
    rules: [
      { test: /\.css$/, use: 'css-loader' },
      { test: /\.ts$/, use: 'ts-loader' }
    ]
  }
};
S.M_Emamian
fonte
1
É um erro de digitação? Ele deve estar rulesno webpack 4.
Sin
você deve usar as regras em Webpack 4.
S.M_Emamian
2
altere os carregadores para regras no webpack 4 ... caso seja necessário repetir: /
Helmut Granda
1
Você deve explicar na sua resposta que a razão para a mudança é Webpack 4.
kojow7
2

As respostas acima estão funcionando, mas podemos resolver esse problema alterando a versão do webpack e do webpack-dev-server para

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

Também pode resolver o problema. Espero que ajude.

Anshul
fonte
Eu te dei um aumento. O único problema é que as pessoas desejam atualizar versões de estruturas e ferramentas para obter novos recursos e não voltar para versões mais antigas apenas para garantir que não precisem alterar seus arquivos de configuração. Talvez seja difícil alterar o arquivo de configuração para se alinhar à nova maneira como a ferramenta funciona. A menos que isso seja impossível.
Eniola
Obrigado @Eniola, sim, você está certo. Como mencionei, a resposta S.M_Emamian está correta, mas minha resposta funcionará se alguém concordar em trabalhar com a versão mais antiga do webpack.
Anshul
0

Trabalhando para mim abaixo do 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' }
        ]
    }
}
Pankaj Upadhyay
fonte