J'essaie de suivre cette instruction https://webpack.js.org/loaders/jshint-loader/ Et obtenir une erreur:
Mon fichier de configuration:
const path = require('path');
module.exports = {
entry: {
app: './index.js'
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.js$/, // include .js files
enforce: "pre", // preload the jshint loader
exclude: /node_modules/, // exclude any and all files in the node_modules folder
use: [
{
loader: "jshint-loader"
}
]
}
]
},
// more options in the optional jshint object
jshint: {
// any jshint option http://www.jshint.com/docs/options/
// i. e.
camelcase: true,
// jshint errors are displayed by default as warnings
// set emitErrors to true to display them as errors
emitErrors: false,
// jshint to not interrupt the compilation
// if you want any file with jshint errors to fail
// set failOnHint to true
failOnHint: false,
// custom reporter function
reporter: function(errors) { }
}
};
texte d'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 a une propriété inconnue 'jshint'. Ces propriétés sont valides: objet {amd?, bail ?, cache ?, contexte?, dépendances ?, devServer ?, devtool ?, entrée, externals ?, chargeur ?, module ?, nom ?, noeud ?, sortie ?, performance?, plugins? ile ?, recordsInputPath ?, recordsOutputPath ?, recordsPath ?, resolution ?, resolLoader ?, stats ?, cible ?, regarder ?, watchOptions? } Pour les fautes de frappe: corrigez-les s'il vous plaît . Pour les options du chargeur: webpack 2 n'autorise plus les propriétés personnalisées dans la configuration.
Les instructions sur leur site Web semblent être obsolètes car cela ne fonctionne pas vraiment. Il y a un problème en suspens à ce sujet sur Github .
Cette configuration devrait fonctionner:
const path = require('path');
module.exports = {
entry: {
app: './index.js'
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [{
test: /\.js$/, // include .js files
enforce: "pre", // preload the jshint loader
exclude: /node_modules/, // exclude any and all files in the node_modules folder
use: [{
loader: "jshint-loader",
// more options in the optional jshint object
options: { // ⬅ formally jshint property
camelcase: true,
emitErrors: false,
failOnHint: false
}
}]
}]
},
};
La seule chose qui a fonctionné pour moi a été de modifier manuellement le fichier de jshint-loader.
Après le changement, la fonction ressemblera à ceci:
fonction jsHint (entrée, options) { // options de copie dans un objet if (options.jshint) { pour (nom de var dans this.options.jshint) { options [nom] = this.options.jshint [nom]; } } // fonction continue ... }