Eslint+Prettier配置

本文介绍如何使用ESLint和Prettier配置代码规范,确保项目代码的一致性和可读性。包括安装和配置过程,以及如何集成到Vue项目的开发流程中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码规范

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多多@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值