代码规范

我们通过配置eslint + prettier保证项目代码规范。

eslint 配置

使用eslint —-init**初始化配置**文件

  1. npx eslint --init

按照如图的步骤选择:
image.png

检测一下eslint的是否生效

package.json文件里添加 script

  1. {
  2. "scripts":{
  3. "lint": "eslint . --ext .js,.ts,.tsx,.vue --fix"
  4. }
  5. }

eslint 默认只检测.js的文件, 所以需要 —ext 来指定文件类型,详情可参考官网 有的时候可能eslint没有及时的生效,可以重新启动下我们的编辑器

适配vue3

看下eslint-plugin-vue文档,只需要vue的eslint的相关配置改成一个配置就好了

  1. module.exports = {
  2. ...,
  3. "extends": [
  4. "plugin:vue/vue3-recommended",
  5. ],
  6. ...
  7. }

Prettier

需要安装两个插件

  1. yarn add -D prettier eslint-plugin-prettier eslint-config-prettier

修改下.eslintrc.js

  1. module.exports = {
  2. ...,
  3. extends: [
  4. ...,
  5. "plugin:prettier/recommended",
  6. ],
  7. ...
  8. }

创建.prettierrc.js, 内容如下

  1. module.exports = {
  2. // printWidth: 80,
  3. // tabWidth: 2,
  4. // useTabs: false,
  5. semi: false, // 未尾逗号, default: true
  6. singleQuote: true, // 单引号 default: false
  7. // quoteProps: 'as-needed',
  8. // jsxSingleQuote: false,
  9. trailingComma: 'none', // 未尾分号 default: es5 all | none | es5
  10. // bracketSpacing: true,
  11. // bracketSameLine: false,
  12. // jsxBracketSameLine: false,
  13. arrowParens: 'avoid', // default: always
  14. // insertPragma: false,
  15. // requirePragma: false,
  16. proseWrap: 'never',
  17. // htmlWhitespaceSensitivity: 'css',
  18. // vueIndentScriptAndStyle: false, // .vue 缩进
  19. endOfLine: 'auto' // default lf
  20. }

添加lint-staged

添加了lint-staged之后我们就能在提交代码的时候进行校验
安装库和脚本

  1. npx mrm@2 lint-staged