web-dev-qa-db-fra.com

La configuration Webpack a une propriété inconnue 'preLoaders'

J'apprends webpack à partir de zéro. J'ai appris à lier des fichiers javascript avec require. Je regroupe et minimise mes fichiers js et je suis à l'écoute des changements avec watch. Je suis en train de configurer des chargeurs pour convertir mes fichiers sass en css. Mais lorsque j'essaie de configurer un processus de lintérisation avec jshint-loader, je rencontre des problèmes.

    module: {
preLoaders: [
        {
            test: /\.js$/, // include .js files
            exclude: /node_modules/, // exclude any and all files in the node_modules folder
            loader: "jshint-loader"
        }
],

loaders: [
  {
    test: /\.scss$/,
    loader: 'style-loader!css-loader!sass-loader'
  },
  {
    test: /\.js$/,
    loader: 'babel-loader',
    exclude: /node_modules$/,
    query: {
      presets: ['es2015']
    }
  }
],

}

Voici l'erreur

Objet de configuration invalide. Webpack a été initialisé à l'aide d'un objet de configuration qui ne correspond pas au schéma de l'API . - configuration.module a une propriété inconnue 'preLoaders'. Ces propriétés sont valides: object {exprContextCritical ?, exprContextRecursive ?, exprContextRegExExpp ?, exprContextRequest ?, loaders ?, nonParse ?, rules ?, unknownContext? } Options affectant les modules normaux (NormalModuleFactory).

27
ronBaker

Vous essayez apparemment d'utiliser des exemples pour Webpack v1 avec Webpack v2. Directement depuis le changelog :

  module: {
-   preLoaders: [
+   rules: [
      {
        test: /\.js$/,
+       enforce: "pre",
        loader: "eslint-loader"
      }
    ]
  }
58
Ivan

De v2.1-beta.23 la section loaders est renommée en règles et les pré/postLoaders sont désormais définis sous chaque règle avec la propriété enforce.

Donc, renommez preLoaders en rules et vous devriez être prêt à partir ;-)

25
NetProvoke

si vous utilisez webpack 2, vous pouvez utiliser la balise enforce: 'pre' dans le tableau loaders et cela fonctionnera comme préchargement. Veuillez vous reporter au code ci-dessous pour plus de détails.

module: {
    loaders: [
        {
            test: /\.js$/,
            exclude: /node_modules/,
            loader: 'jshint-loader',
            //this is similar to defining a preloader
            enforce: 'pre'
        },
        {
            test: /\.es6$/,
            exclude: /node_modules/,
            loader: "babel-loader"
        }
    ]

},
1
prasanth shenoy

Première désinstallation du webpack

npm uninstall webpack --save-dev

suivi par

npm install [email protected] --save-dev

1
Wasim Malik

utilisez celui-ci à la place ./webpack.config.js

 var path = require('path');

module.exports = {
   entry: './main.ts',
   resolve: {
     extensions: ['.webpack.js', '.web.js', '.ts', '.js']
   },
   module: {
     rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
   },
   output: {
     filename: 'bundle.js',
     path: path.resolve(__dirname, 'dist')
   }
 }

la documentation peut être trouvée ici le problème est lié à la version de ts-loader que vous avez installée

0
Greko2015 GuFn