What is @vue/cli-plugin-eslint?
@vue/cli-plugin-eslint is a Vue CLI plugin that adds ESLint support to your Vue.js projects. It helps in maintaining code quality and consistency by integrating ESLint, a popular linting tool for JavaScript, into the Vue development workflow.
What are @vue/cli-plugin-eslint's main functionalities?
Linting on Save
This feature enables linting of your code every time you save a file. It helps catch errors and enforce coding standards in real-time.
module.exports = {
lintOnSave: true
};
Custom ESLint Configuration
This feature allows you to customize the ESLint configuration to fit your project's specific needs. You can add custom rules, plugins, and settings.
module.exports = {
lintOnSave: true,
configureWebpack: {
module: {
rules: [
{
enforce: 'pre',
test: /\.js$/,
loader: 'eslint-loader',
exclude: /node_modules/
}
]
}
}
};
Linting Scripts
This feature adds a linting script to your package.json file, enabling you to run ESLint checks via the command line. This is useful for integrating linting into your CI/CD pipeline.
{
"scripts": {
"lint": "vue-cli-service lint"
}
}
Other packages similar to @vue/cli-plugin-eslint
eslint
ESLint is a widely-used linting tool for JavaScript. It can be used independently of Vue CLI and offers extensive customization options. While @vue/cli-plugin-eslint integrates ESLint into Vue projects seamlessly, ESLint itself can be used in any JavaScript project.
eslint-plugin-vue
eslint-plugin-vue is a plugin for ESLint that provides linting rules specific to Vue.js. It can be used alongside ESLint to enforce Vue-specific coding standards. While @vue/cli-plugin-eslint includes this plugin by default, eslint-plugin-vue can be added to any ESLint configuration.
vue-eslint-parser
vue-eslint-parser is a parser for ESLint that allows it to lint Vue.js template files. It works with eslint-plugin-vue to provide comprehensive linting for Vue components. This parser is included in @vue/cli-plugin-eslint but can also be used independently.
@vue/cli-plugin-eslint
eslint plugin for vue-cli
Injected Commands
-
vue-cli-service lint
Usage: vue-cli-service lint [options] [...files]
Options:
--format [formatter] specify formatter (default: codeframe)
--no-fix do not fix errors
--max-errors specify number of errors to make build failed (default: 0)
--max-warnings specify number of warnings to make build failed (default: Infinity)
Lints and fixes files. If no specific files are given, it lints all files in src
and test
.
Other ESLint CLI options are also supported.
Configuration
ESLint can be configured via .eslintrc
or the eslintConfig
field in package.json
.
Lint-on-save during development with eslint-loader
is enabled by default. It can be disabled with the lintOnSave
option in vue.config.js
:
module.exports = {
lintOnSave: false
}
When set to true
, eslint-loader
will emit lint errors as warnings. By default, warnings are only logged to the terminal and does not fail the compilation.
To make lint errors show up in the browser overlay, you can use lintOnSave: 'error'
. This will force eslint-loader
to always emit errors. this also means lint errors will now cause the compilation to fail.
Alternatively, you can configure the overlay to display both warnings and errors:
module.exports = {
devServer: {
overlay: {
warnings: true,
errors: true
}
}
}
When lintOnSave
is a truthy value, eslint-loader
will be applied in both development and production. If you want to disable eslint-loader
during production build, you can use the following config:
module.exports = {
lintOnSave: process.env.NODE_ENV !== 'production'
}
Installing in an Already Created Project
vue add eslint
Injected webpack-chain Rules
config.module.rule('eslint')
config.module.rule('eslint').use('eslint-loader')