Eslint+Prettier配置

导读:本篇文章讲解 Eslint+Prettier配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

代码规范

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

请大家先安装ESLintPrettier两个vscode扩展

Eslint配置

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

npx eslint --init

按照如图的步骤选择:

在这里插入图片描述

项目文件变化一览

package.json文件变化

{
  ...
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^5.30.7",
    "@typescript-eslint/parser": "^5.30.7",
    "eslint": "^8.20.0",
    "eslint-plugin-vue": "^9.2.0",
  }
  ...
}

生成了一个.eslintrc.cjs文件

module.exports = {
    "env": {
        "browser": true,
        "es2021": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:vue/essential",
        "plugin:@typescript-eslint/recommended"
    ],
    "parserOptions": {
        "ecmaVersion": 13,
        "parser": "@typescript-eslint/parser",
        "sourceType": "module"
    },
    "plugins": [
        "vue",
        "@typescript-eslint"
    ],
    "rules": {
    }
};

检测下eslint 是否生效

如果项目中没有安装 typescript 你还需要 yarn add -D typescript

eslint cli中文官网

  1. package.json文件里添加 script
{
  "scripts":{
    "lint": "eslint . --ext .ts,.vue" 
  }
}

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

执行会报错,原因是不识别SFC

适配vue3

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

module.exports = {
  ...,
  "extends": [
    // "eslint:recommended",
    "plugin:vue/vue3-recommended",
    // "plugin:@typescript-eslint/recommended"  
  ],
  ...
}

添加 prettier

需要安装两个插件

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

修改下.eslintrc.cjs

module.exports = {
  ...,
  extends: [
    ...,
    "plugin:prettier/recommended",
  ],
  ...
}

创建.prettierrc.js, 内容如下

module.exports = {
  // printWidth: 80,
  // tabWidth: 2,
  // useTabs: false,
  semi: false, // 未尾逗号, default:  true
  singleQuote: true, // 单引号 default: false
  // quoteProps: 'as-needed',
  // jsxSingleQuote: false,
  trailingComma: 'none', // 未尾分号 default: es5    all | none | es5
  // bracketSpacing: true,
  // bracketSameLine: false,
  // jsxBracketSameLine: false,
  arrowParens: 'avoid', // default: always
  // insertPragma: false,
  // requirePragma: false,
  proseWrap: 'never',
  // htmlWhitespaceSensitivity: 'css',
  // vueIndentScriptAndStyle: false,  // .vue 缩进
  endOfLine: 'auto' // default lf
}

添加lint-staged husky

添加了lint-staged之后我们就能在提交代码的时候

安装库和脚本

npx mrm@2 lint-staged

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79700.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!