diff --git a/packages/@vue/cli-plugin-eslint/index.js b/packages/@vue/cli-plugin-eslint/index.js index 6f7fc5337c..95dc9f5d31 100644 --- a/packages/@vue/cli-plugin-eslint/index.js +++ b/packages/@vue/cli-plugin-eslint/index.js @@ -1,6 +1,9 @@ module.exports = (api, options) => { if (options.lintOnSave) { const extensions = require('./eslintOptions').extensions(api) + const { loadModule } = require('@vue/cli-shared-utils') + const cwd = api.getCwd() + const eslintPkg = loadModule('eslint/package.json', cwd, true) // eslint-loader doesn't bust cache when eslint config changes // so we have to manually generate a cache identifier that takes the config @@ -9,7 +12,7 @@ module.exports = (api, options) => { 'eslint-loader', { 'eslint-loader': require('eslint-loader/package.json').version, - 'eslint': require('eslint/package.json').version + 'eslint': eslintPkg.version }, [ '.eslintrc.js', @@ -38,7 +41,7 @@ module.exports = (api, options) => { cacheIdentifier, emitWarning: options.lintOnSave !== 'error', emitError: options.lintOnSave === 'error', - formatter: require('eslint/lib/formatters/codeframe') + formatter: loadModule('eslint/lib/formatters/codeframe', cwd, true) }) }) } diff --git a/packages/@vue/cli-plugin-eslint/lint.js b/packages/@vue/cli-plugin-eslint/lint.js index bb40f3bec1..b4d98acc6f 100644 --- a/packages/@vue/cli-plugin-eslint/lint.js +++ b/packages/@vue/cli-plugin-eslint/lint.js @@ -28,8 +28,8 @@ const defaultFilesToLint = [ module.exports = function lint (args = {}, api) { const path = require('path') const cwd = api.resolve('.') - const { CLIEngine } = require('eslint') - const { log, done, exit, chalk } = require('@vue/cli-shared-utils') + const { log, done, exit, chalk, loadModule } = require('@vue/cli-shared-utils') + const { CLIEngine } = loadModule('eslint', cwd, true) const extensions = require('./eslintOptions').extensions(api) const argsConfig = normalizeConfig(args)