1、为什么要使用 ESLint 和 Prettier
代码规范是软件开发领域经久不衰的话题,随着前端应用的大型化和复杂化,越来越多的前端团队开始重视 JavaScript
代码规范。不以规矩,不能成方圆
2、ESlint
如果项目目录下有多个配置文件,ESLint 只会使用一个,优先级为:.eslintrc.js
> .eslintrc
> package.json
> 安装 ESlint
# 删除原来的依赖 npm rm @vue/cli-plugin-eslint @vue/eslint-config-prettier babel-eslint eslint eslint-plugin-prettier eslint-plugin-vue prettier
# 安装 依赖 npm install @vue/cli-plugin-eslint@4.4.6 @vue/eslint-config-prettier@7.0.0 babel-eslint eslint@7.15.0 eslint-plugin-prettier@3.4.1 eslint-plugin-vue@7.2.0 prettier@2.5.1 --save-dev
# 如果安装报错 # --legacy-peer-deps:安装时忽略所有peerDependencies,忽视依赖冲突,采用npm版本4到版本6的样式去安装依赖,已有的依赖不会覆盖。建议用--legacy-peer-deps 比较保险一点 # --force 会无视冲突,并强制获取远端npm库资源,当有资源冲突时覆盖掉原先的版本。 npm install @vue/cli-plugin-eslint @vue/eslint-config-prettier babel-eslint eslint eslint-plugin-prettier eslint-plugin-vue prettier --save-dev --legacy-peer-deps
|
在 package.json 文件中添加或替换 lint 命令
"scripts": { "lint": "eslint --fix --ext .js,.vue src/" },
|
npm run lint # 需要进行一键修复的时候就执行命令
|
> .eslintrc.js配置
module.exports = { root: true, env: { node: true, }, extends: [ "eslint:recommended", "plugin:vue/recommended", "plugin:prettier/recommended", "plugin:vue/essential", "@vue/prettier", ], parserOptions: { parser: "babel-eslint", }, rules: { "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", "prettier/prettier": ["error", { endOfLine: "auto" }], }, };
|
3、Prettier
> 根目录创建并配置 .prettierrc
文件
{ "tabWidth": 4, "printWidth": 120, "useTabs": false, "semi": true, "singleQuote": false, "TrailingComma": "all", "bracketSpacing": true, "jsxBracketSameLine": false, "arrowParens": "avoid" }
|
> 命令行格式化所有文件
npx prettier --write . #格式化所有文件
|
!!! 配置完记得重启vscode
4、插件安装
Prettier 插件安装
安装插件 Prettier - Code formatter
ESLint 插件安装
安装插件 ESLint
{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true }, "editor.codeActionsOnSave": { "source.fixAll": true, "source.fixAll.eslint": true } }
|
5、配置项含义
.prettierrc文件常见配置
{ "tabWidth": 4, "printWidth": 120, "useTabs": false, "semi": false, "singleQuote": false, "TrailingComma": "all", "bracketSpacing": true, "jsxBracketSameLine": false, "arrowParens": "avoid" }
|