2015-04-08 10 views
9

Mit jshint-loader mit Webpack, wie kann ich den webpack Befehl fehlschlagen, wenn JSHint Warnungen ausgibt?Wie mache ich das Beenden von Webpack mit einem Fehler, wenn jshint Warnungen ausgibt?

Der Kontext ist, dass ich den CI-Build fehlschlagen möchte, wenn Linting Probleme entdeckt.

Zur Zeit habe ich einfach Webpack konfiguriert jshint-Loader auf Vorspannung von JS Dateien auszuführen:

// webpack.config.js 
module.exports = { 
    module: { 
    preLoaders: [ 
     { 
     test: /\.js/, 
     exclude: /node_modules/, 
     loader: 'jshint-loader', 
     }, 
    ], 
    }, 
}; 

Antwort

4

Zuerst jshint-Loader konfiguriert werden müssen, falls Fragen scheitern werden (failOnHint: true) gefunden, optional Sie können auch Warnungen als Webpack-Fehler ausgeben (emitErrors: true).

// webpack.config.js 
module.exports = { 
    module: { 
    preLoaders: [ 
     { 
     test: /\.js/, 
     exclude: /node_modules/, 
     loader: 'jshint-loader', 
     }, 
    ], 
    }, 
    jshint: { 
    emitErrors: true, 
    failOnHint: true, 
    }, 
}; 

Zweitens muss Webpack gesagt werden, schwer zu versagen, indem die --bail Option: webpack --bail.

Update:

webpack --bail noch emittieren keine Nicht-Null-Exit-Code, argh.

+0

Hm, wie kommt es, dass Webpack beschwert, dass "jshint" nicht erlaubt ist, wenn ich der Konfiguration eine jshint-Option hinzufüge? –

+0

Ah, wegen des Webpack-Validators musste ich dem Validatorschema eine benutzerdefinierte Regel hinzufügen. https://github.com/js-dxtools/webpack-validator#schema –

+0

Das --bail Bit funktioniert jetzt :) –