diff --git a/packages/@vue/cli-plugin-eslint/index.js b/packages/@vue/cli-plugin-eslint/index.js index cf327acf01..bd109efe9a 100644 --- a/packages/@vue/cli-plugin-eslint/index.js +++ b/packages/@vue/cli-plugin-eslint/index.js @@ -61,7 +61,8 @@ module.exports = (api, options) => { usage: 'vue-cli-service lint [options] [...files]', options: { '--format [formatter]': 'specify formatter (default: codeframe)', - '--no-fix': 'do not fix errors', + '--no-fix': 'do not fix errors or warnings', + '--no-fix-warnings': 'fix errors, but do not fix warnings', '--max-errors [limit]': 'specify number of errors to make build failed (default: 0)', '--max-warnings [limit]': 'specify number of warnings to make build failed (default: Infinity)' }, diff --git a/packages/@vue/cli-plugin-eslint/lint.js b/packages/@vue/cli-plugin-eslint/lint.js index 7bbe13c5ad..ac9794417d 100644 --- a/packages/@vue/cli-plugin-eslint/lint.js +++ b/packages/@vue/cli-plugin-eslint/lint.js @@ -32,6 +32,10 @@ module.exports = function lint (args = {}, api) { cwd }, argsConfig) + const noFixWarnings = (argsConfig.fixWarnings === false) + const noFixWarningsPredicate = (lintResult) => lintResult.severity === 2 + config.fix = config.fix && (noFixWarnings ? noFixWarningsPredicate : true) + if (!fs.existsSync(api.resolve('.eslintignore'))) { // .eslintrc.js files (ignored by default) // However, we need to lint & fix them so as to make the default generated project's