- 说明
- 配置
- 1. VSCode安装eslint和prettier插件
- 2. VSCode的setting中配置
- eslint-plugin-vue">3. 项目中安装eslint,eslint-plugin-vue
- prettier,eslint-plugin-prettier, eslint-config-prettier">4. 项目中安装prettier,eslint-plugin-prettier, eslint-config-prettier
- 5. 项目根目录下配置.eslintrc 和 .eslintignore
- 6. 项目根目录下创建 .prettierrc 和.prettierignore文件,配合eslint规则进行修改
- 7. package.json中配置提交时校验
- 运行
说明
Vue项目配置eslint+prettier的流程,别的类型的项目可以稍作修改,大致流程差不多。
配置
1. VSCode安装eslint和prettier插件
2. VSCode的setting中配置
// 配置eslint 对 vue 文件生效
// @see: https://github.com/vuejs/eslint-plugin-vue/issues/327#issuecomment-355729002
"eslint.validate": ["javascript", "javascriptreact", "vue", "html"],
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// 保存时自动修复,根据情况配置
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.fixAll.eslint": true
},
3. 项目中安装eslint,eslint-plugin-vue
eslint-plugin-vue:针对vue的eslint规则插件(如果是别的类型的项目,可以使用别的插件,如eslint-plugin-react等,vue相关配置做适量修改即可)
使用vue-cli
vue add @vue/cli-plugin-eslint
使用npm
npm install --save-dev eslint eslint-plugin-vue
使用yarn
yarn add -D eslint eslint-plugin-vue
Requirements
- ESLint v6.2.0 and above
- Node.js v8.10.0 and above
4. 项目中安装prettier,eslint-plugin-prettier, eslint-config-prettier
eslint-plugin-prettier:Runs Prettier as an ESLint rule and reports differences as individual ESLint issues.
eslint-config-prettier:禁用与格式化相关的eslint规则(因为prettier和eslint规则可能会有冲突)
npm install --save-dev prettier eslint-plugin-prettier eslint-config-prettier
5. 项目根目录下配置.eslintrc 和 .eslintignore
.eslintrc
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true,
"jest": true
},
"parserOptions": {
"parser": "babel-eslint",
"sourceType": "module",
"ecmaVersion": 2020
},
"extends": [
"eslint:recommended",
// "plugin:vue/base",
// "plugin:vue/essential",
// "plugin:vue/、strongly-recommended",
// 'plugin:vue3/recommended' // Use this if you are using Vue.js 3.x.
"plugin:vue/recommended", // 包含了base、essential、strongly-recommended
"prettier",
"prettier/vue"
],
"rules": {
// override/add rules settings here, such as:
"quotes": [ "error", "single", { "allowTemplateLiterals": true } ]
// 补充需要配置的规则
},
"plugins": ["vue"]
}
.eslintignore 不需要执行eslint的文件
node_modules
6. 项目根目录下创建 .prettierrc 和.prettierignore文件,配合eslint规则进行修改
.prettierrc
{
"bracketSpacing": true,
"endOfLine": "lf",
"printWidth": 80,
"semi": true,
"singleQuote": true,
"tabWidth": 2
}
如果prettier格式化时不生效,将prettier降级到1.19.1,暂未知原因 npm install -D prettier@1.19.1
.prettierignore 不需要执行prettier的文件
node_modules
7. package.json中配置提交时校验
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,vue}": [
"vue-cli-service lint",
"git add"
]
}
运行
执行VSCode快捷键 Ctrl+Alt+F 即可按.prettier中配置的规则进行格式化,如果第二步中配置了antosave相关的保存时会按照.eslintrc中配置的规则自动修复。