11"use strict"
22
3- var eslint = require ( "eslint" )
43var assign = require ( "object-assign" )
54var loaderUtils = require ( "loader-utils" )
65var objectHash = require ( "object-hash" )
@@ -68,6 +67,7 @@ function printLinterOutput(res, config, webpack) {
6867
6968 // if enabled, use eslint auto-fixing where possible
7069 if ( config . fix && res . results [ 0 ] . output ) {
70+ var eslint = require ( config . eslintPath )
7171 eslint . CLIEngine . outputFixes ( res )
7272 }
7373
@@ -142,19 +142,25 @@ function printLinterOutput(res, config, webpack) {
142142 */
143143module . exports = function ( input , map ) {
144144 var webpack = this
145+
146+ var userOptions = assign (
147+ // user defaults
148+ this . options . eslint || { } ,
149+ // loader query string
150+ loaderUtils . getOptions ( this )
151+ )
152+
145153 var config = assign (
146154 // loader defaults
147155 {
148156 formatter : require ( "eslint/lib/formatters/stylish" ) ,
149157 cacheIdentifier : JSON . stringify ( {
150158 "eslint-loader" : pkg . version ,
151- eslint : eslint . version ,
159+ eslint : require ( userOptions . eslintPath || " eslint" ) . version ,
152160 } ) ,
161+ eslintPath : "eslint" ,
153162 } ,
154- // user defaults
155- this . options . eslint || { } ,
156- // loader query string
157- loaderUtils . getOptions ( this )
163+ userOptions
158164 )
159165
160166 var cacheDirectory = config . cache
@@ -166,6 +172,7 @@ module.exports = function(input, map) {
166172 // Create the engine only once per config
167173 var configHash = objectHash ( config )
168174 if ( ! engines [ configHash ] ) {
175+ var eslint = require ( config . eslintPath )
169176 engines [ configHash ] = new eslint . CLIEngine ( config )
170177 }
171178
0 commit comments