2024最新vite + vue3 配置eslint prettier stylelint husky lint-staged husky commitlint

vite + vue3 配置eslint prettier stylelint husky lint-staged husky commitlint

引言

为了项目团队统一编码风格以及对代码的约束,故引入以下依赖及配置。

第一步 安装依赖

依赖包若有兼容性问题,请查看下方具体的版本号

yarn add [email protected] --dev

yarn add prettier eslint-config-prettier eslint-config-airbnb-base eslint-plugin-import eslint-plugin-vue eslint-plugin-prettier vite-plugin-eslint --dev

yarn add stylelint stylelint-config-recess-order stylelint-config-recommended-scss stylelint-config-standard
stylelint-config-standard-scss stylelint-config-standard-vue --dev

yarn add lint-staged --dev

yarn add husky @commitlint/cli @commitlint/config-conventional commitizen cz-git --dev

eslint

代码规则定义及检测工具

prettier

代码风格定义及检测工具

eslint-plugin-import

airbnb所需的依赖,检测js import语句是否正确

eslint-config-prettier

配置eslint规则的prettier包,可以禁用 Prettier与 ESLint冲突的规则。

eslint-config-airbnb-base

airbnb风格的代码规范

eslint-plugin-vue

可以对.vue文件的代码进行检查

eslint-plugin-prettier

使用 Prettier风格格式化代码

vite-plugin-eslint

在vite运行时检测代码是否符合eslint规范

stylelint

stylelint 核心库

stylelint-config-recess-order

css 属性的排序(插件包)

stylelint-config-recommended-scss

扩展 stylelint-config-recommended 共享配置,并为 SCSS 配置其规则

stylelint-config-standard

打开额外的规则来执行在规范和一些 CSS 样式指南中发现的通用约定,包括:惯用 CSS 原则,谷歌的 CSS 样式指南,Airbnb 的样式指南,和 @mdo 的代码指南。

stylelint-config-standard-scss

扩展 stylelint-config-standard 共享配置,并为 SCSS 配置其规则

stylelint-config-standard-vue

扩展 stylelint-config-standard 配置,并为 Vue 配置其规则

lint-staged

扫描暂存区的文件

@commitlint/cli @commitlint/config-conventional

校验commit是否符合规范

commitizen

git commit 终端可视化交互工具

与 cz-git 配合使用

cz-git

与commitizen配合使用

第二步 vscode安装扩展及相关配置文件

vs code安装扩展

vscode中安装eslint、prettier、stylelint扩展

项目根目录新建配置文件

.eslintrc.cjs
module.exports = {
   
   
  root: true,
  env: {
   
   
    browser: true,
    node: true,
    es6: true,
  },
  // 指定如何解析语法
  parser: 'vue-eslint-parser',
  // 优先级低于 parse 的语法解析配置
  parserOptions: {
   
   
    ecmaVersion: 'latest',
    sourceType: 'module',
    ecmaFeatures: {
   
   
      jsx: false,
    },
  },

  // 继承某些已有的规则
  extends: [
    'plugin:vue/vue3-recommended', // 使用插件支持vue3
    'airbnb-base',
    'plugin:prettier/recommended',
    './.eslintrc-auto-import.json',
  ],
  /**
   * "off" 或 0  ==>  关闭规则
   * "warn" 或 1 ==>  打开的规则作为警告(不影响代码执行)
   * "error" 或 2 ==>  规则作为一个错误(代码不能执行,界面报错)
   */
  rules: {
   
   
    // eslint (http://eslint.cn/docs/rules)
    'prettier/prettier': 'error',
    'import/extensions': 0,
    'prefer-template': 0,
    'no-var': 'error', // 要求使用 let 或 const 而不是 var
    'no-multiple-empty-lines': ['error', {
   
    max: 1 }], // 不允许多个空行
    'prefer-const': 'off', // 使用 let 关键字声明但在初始分配后从未重新分配的变量,要求使用 const
    'no-use-before-define': 'off', // 禁止在 函数/类/变量 定义之前使用它们
    'no-irregular-whitespace': 'off', // 禁止不规则的空白\
    'import/no-cycle': 0,
    'no-nested-ternary': 0,
    'import/prefer-default-export': 0,
    'import/no-unresolved': 0,
    'prefer-destructuring': 0,
    'no-shadow': 0,
    'no-param-reassign': 0,
    'consistent-return': 0,
    'no-case-declarations': 0,
    'prefer-promise-reject-errors': 0,
    'jsx-a11y/click-events-have-key-events': 0,
    'jsx-a11y/no-static-element-interactions': 0,
    camelcase: 0,
    'import/no-extraneous-dependencies': 0,
<think>好的,我现在需要在ViteVue项目中集成ESLint。用户已经提供了一些引用资料,我需要仔细看看这些资料里的步骤,然后整理出一个清晰的配置流程。首先,引用[1]提到项目框架已经包括了Vite+Vue3+TypeScript+ESLint等工具,说明ESLint是已经存在的,但用户可能想了解具体的集成方法。接下来,引用[2]和[3]提到了安装lint-staged和相关Prettier的依赖,还有配置文件的创建步骤。 首先,我应该分步骤来指导用户如何配置ESLint。第一步通常是安装必要的依赖。根据引用[3],需要安装ESLint以及相关的插件,比如eslint-plugin-vue用于Vue语法支持,还有@typescript-eslint/eslint-plugin用于TypeScript。可能还需要安装Prettier相关的包来和ESLint配合使用。然后,初始化ESLint配置,可以通过运行npx eslint --init来生成配置文件,或者手动创建.eslintrc.cjs文件,特别是因为Vite项目使用CJS模块可能需要这样的配置。 接下来,配置ESLint规则,可能需要覆盖Vue和TypeScript的解析器选项。例如,设置parser为&#39;vue-eslint-parser&#39;,并指定parserOptions里的parser为@typescript-eslint/parser。此外,添加扩展配置,如plugin:vue/vue3-recommended和@typescript-eslint/recommended,确保Vue3和TypeScript的语法检查正确。 然后,配置Prettier以避免与ESLint冲突,根据引用[3],需要安装eslint-config-prettiereslint-plugin-prettier,并在ESLint配置中扩展这些插件。同时,在项目根目录下创建.prettierrc.cjs文件来定义Prettier的格式化规则。 接下来,添加脚本命令到package.json中,比如"lint"和"lint:fix",方便用户运行检查和自动修复。此外,集成到IDE中,比如VSCode的ESLint插件,可以实时显示错误,并在保存时自动修复。 另外,引用[2]提到使用lint-staged来对暂存区的文件进行检查,这可以作为Git钩子的一部分,确保提交的代码符合规范。需要安装huskylint-staged配置package.json中的lint-staged部分,针对不同的文件类型运行相应的命令。 最后,可能需要注意一些常见问题,比如配置文件的后缀是否正确(.cjs),依赖版本是否兼容,以及如何解决ESLintPrettier的规则冲突。同时,用户可能需要了解如何扩展或自定义规则,以适应项目需求。 总结一下,步骤大致分为安装依赖、初始化配置、调整规则、集成Prettier、添加脚本、配置IDE和Git钩子,以及处理常见问题。需要确保每一步都清晰,并且参考用户提供的引用内容中的具体命令和配置示例,保证回答的准确性。</think>### Vite + Vue 项目集成 ESLint配置步骤 #### 一、安装依赖 1. **基础依赖** 安装 ESLint 核心库及 Vue/TypeScript 插件: ```bash pnpm add eslint eslint-plugin-vue @typescript-eslint/eslint-plugin @typescript-eslint/parser -D ``` 2. **Prettier 集成** 确保 ESLintPrettier 兼容(引用[3]): ```bash pnpm add prettier eslint-config-prettier eslint-plugin-prettier -D ``` --- #### 二、初始化 ESLint 配置 1. **创建配置文件** 在项目根目录新建 `.eslintrc.cjs`(注意后缀为 `.cjs`,适配 Vite 的模块系统): ```javascript module.exports = { root: true, env: { browser: true, es2021: true }, extends: [ &#39;eslint:recommended&#39;, &#39;plugin:vue/vue3-recommended&#39;, &#39;plugin:@typescript-eslint/recommended&#39;, &#39;plugin:prettier/recommended&#39; // 集成 Prettier 规则 ], parser: &#39;vue-eslint-parser&#39;, parserOptions: { parser: &#39;@typescript-eslint/parser&#39;, sourceType: &#39;module&#39; }, rules: { &#39;vue/multi-word-component-names&#39;: &#39;off&#39; // 可选:关闭组件名多单词校验 } }; ``` --- #### 三、配置 Prettier 1. **创建 Prettier 配置文件** 新建 `.prettierrc.cjs`(引用[3]): ```javascript module.exports = { semi: false, singleQuote: true, trailingComma: &#39;none&#39;, printWidth: 100 }; ``` --- #### 四、添加脚本命令 在 `package.json` 中添加: ```json { "scripts": { "lint": "eslint . --ext .vue,.ts,.js", "lint:fix": "eslint . --ext .vue,.ts,.js --fix" } } ``` --- #### 五、IDE 集成(以 VSCode 为例) 1. 安装 **ESLint** 和 **Prettier** 插件 2. 在设置中启用保存自动修复: ```json { "editor.codeActionsOnSave": { "source.fixAll.eslint": true } } ``` --- #### 六、Git 提交校验(可选) 1. 安装 **husky** + **lint-staged**(引用[2]): ```bash pnpm add husky lint-staged -D npx husky install npx husky add .husky/pre-commit "npx lint-staged" ``` 2. 配置 `package.json`: ```json { "lint-staged": { "*.{vue,ts,js}": ["eslint --fix", "prettier --write"] } } ``` --- #### 常见问题 1. **配置文件后缀错误** 若项目使用 ESM,需改为 `.eslintrc.mjs` 或调整 `package.json` 的 `type` 字段。 2. **依赖版本冲突** 建议锁定版本号或使用 `pnpm` 的自动依赖解析。 3. **规则自定义** 通过 `.eslintrc.cjs` 的 `rules` 字段调整,例如禁用 `console`: ```javascript rules: { &#39;no-console&#39;: &#39;error&#39; } ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值