eslint验证代码是否符合定义的规范

  • eslint-plugin-vue:vue.js的Eslint插件(查找vue语法错误,发现错误指令,查找违规风格指南)
  • eslint-plugin-prettier:运行更漂亮的Eslint,使prettier规则优先级更高,Eslint优先级低
  • eslint-config-prettier:让所有与prettier规则存在冲突的Eslint rules失效,并使用prettier进行代码检查
  • @babel/eslint-parser:该解析器允许使用Eslint校验所有babel code
  1. npm i -D eslint
  2. // 生成配置文件,.eslintrc.js
  3. npx eslint --init
  4. // 使用 standard 规范
  5. npm install -D eslint-plugin-import eslint-plugin-vue eslint-plugin-node eslint-plugin-prettier eslint-config-prettier @babel/eslint-parser
  1. // .eslintrc.js 配置
  2. module.exports = {
  3. root: true,
  4. env: {
  5. browser: true,
  6. es2021: true,
  7. node: true,
  8. jest: true,
  9. },
  10. extends: [
  11. 'eslint:recommended', // eslint
  12. 'plugin:prettier/recommended', // plugin-prettier
  13. 'plugin:vue/vue3-recommended', // plugin-vue
  14. ],
  15. parserOptions: {
  16. parser: '@babel/eslint-parser', // 解析器
  17. ecmaVersion: 'latest',
  18. sourceType: 'module',
  19. },
  20. // rules: { //也可设置一个prettier验证规则
  21. // 'prettier/prettier': 'error', // Runs Prettier as an ESLint rule and reports differences
  22. // },
  23. rules: {
  24. 'space-before-function-paren': ['error', 'never'],
  25. semi: 0, // 结尾不要分号
  26. },
  27. }
  1. // .eslintignore 配置, 防止校验打包的产物
  2. dist
  3. node_modules

之后可以在package.json 中添加运行脚本

  1. "scripts": {
  2. "lint": "eslint src",
  3. "fix": "eslint src --fix",
  4. }

pretter格式化代码符合定义的规范

安装包

  1. npm install -D eslint-plugin-prettier prettier eslint-config-prettier

.prettierrc.json添加如下规则:

  1. {
  2. "singleQuote": true,
  3. "semi": false,
  4. "bracketSpacing": true,
  5. "htmlWhitespaceSensitivity": "ignore",
  6. "endOfLine": "auto",
  7. "trailingComma": "all",
  8. "tabWidth": 2
  9. }

测试一下功能

src下创建一个index.js文件

  1. function a() {
  2. var a = 123;
  3. }

运行npm run lint
发生如下错误:
image.png
运行npm run fix进行修复。

VSCode插件智能提示

vscode能够在我们build之前就能根据你设置的eslintrc中的规则来给你实时提醒,我们只需要在vscode中下载插件:ESlint,重启编辑器就能看到vscode的提示:
设置eslint和pretter统一代码风格 - 图2
不仅如此,当你保存文件的时候,还能帮助你自动更正不符合规范的格式。