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
).
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"
}
]
}
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 ;-)
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"
}
]
},
Première désinstallation du webpack
npm uninstall webpack --save-dev
suivi par
npm install [email protected] --save-dev
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