从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)

欲先善其事,必先利其器。一个好的项目是必须要有一个统一的规范,比如代码规范,样式规范以及代码提交规范等。统一的代码规范旨在增强团队开发协作、提高代码质量和打造开发基石,所以每个人必须严格遵守。

本篇文章将引入 ESLint+Prettier+Stylelint 来对代码规范化。

ESlint

ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误,我们来看一下如何在我们的项目中使用它

首先安装 ESLint

pnpm add eslint -D -w

初始化 ESLint

pnpm create @eslint/config

此时会出现一些选项让我们选择,如下

从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
image.png

因为我们使用的是 pnpm,所以选择安装那些插件的时候我们选择了 No,这里我们用 pnpm 手动安装一下

pnpm i eslint-plugin-Vue@latest @typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest -D -w

此时我们会发现根目录出现了 ESlint 的配置文件.eslintrc.cjs,我们对这个文件进行了一些配置上的修改后如下

module.exports = {
  env: {
    browsertrue,
    es2021true,
    nodetrue
  },
  extends: [
    'eslint:recommended',
    'plugin:vue/vue3-essential',
    'plugin:@typescript-eslint/recommended'
  ],
  globals: {
    defineOptionstrue
  },
  parser'vue-eslint-parser',
  parserOptions: {
    ecmaVersion'latest',
    sourceType'module',
    parser'@typescript-eslint/parser'
  },
  plugins: ['vue''@typescript-eslint'],
  rules: {
    '@typescript-eslint/ban-ts-comment''off',
    'vue/multi-word-component-names''off'
  }
};

同时我们新建.eslintignore来忽略一些文件的校验

**.d.ts
/packages/easyest
dist
node_modules

然后我们在 package.json 的 script 中添加命令 lint:script

  "scripts": {
    "lint:script""eslint --ext .js,.jsx,.vue,.ts,.tsx --fix --quiet ./"
  },

然后执行pnpm run lint:script就能看到一些不规范的地方,现在肯定会有小伙伴问为什么不能保存的时候自动格式化呢,别急,下面会提到如何保存自动格式化。

集成 Prettier

其实只有 ESlint 是完全不够的, ESLint 经常结合 Prettier 一起使用才能体现它们的能力,Prettier 主要是对代码做格式化,接下来我们看下如何将两者结合起来

同样的先安装Prettier

pnpm add prettier -D -w

新建文件.prettierrc.cjs

module.exports = {
  printWidth80//一行的字符数,如果超过会进行换行,默认为80
  tabWidth2// 一个 tab 代表几个空格数,默认为 2 个
  useTabsfalse//是否使用 tab 进行缩进,默认为false,表示用空格进行缩减
  singleQuotetrue// 字符串是否使用单引号,默认为 false,使用双引号
  semitrue// 行尾是否使用分号,默认为true
  trailingComma'none'// 是否使用尾逗号
  bracketSpacingtrue // 对象大括号直接是否有空格,默认为 true,效果:{ a: 1 }
};

安装 eslint-config-prettier(覆盖 eslint 本身规则)和 eslint-plugin-prettier(Prettier 来接管 eslint –fix 即修复代码的能力)

pnpm add eslint-config-prettier eslint-plugin-prettier -D -w

配置.eslintrc.cjs,新增的部分加了注释(注意配置完后将 VSCode 格式化文档默认选择 prettier)

module.exports = {
  env: {
    browsertrue,
    es2021true,
    nodetrue
  },
  extends: [
    'eslint:recommended',
    'plugin:vue/vue3-essential',
    'plugin:@typescript-eslint/recommended',
    // 1. 接入 prettier 的规则
    'prettier',
    'plugin:prettier/recommended'
  ],
  globals: {
    defineOptionstrue
  },
  parser'vue-eslint-parser',
  parserOptions: {
    ecmaVersion'latest',
    sourceType'module',
    parser'@typescript-eslint/parser'
  },
  plugins: ['vue''@typescript-eslint'],
  rules: {
    // 2. 开启 prettier 自动修复的功能
    'prettier/prettier''error',
    '@typescript-eslint/ban-ts-comment''off',
    'vue/multi-word-component-names''off'
  }
};

最后执行pnpm run lint:script即可完成 ESLint 规则校验检查以及 Prettier 的自动修复

我们通常希望在保存代码的时候编辑器就能给我们自动格式化修复,别急,VSCode 就可以做到,只需要一个简单的配置即可,在设置里搜索如下图所示配置

从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
image.png

到这里 ESlint+Prettier 已经配置完毕,接下来再给项目引入 Stylelint(样式规范工具)

Stylelint

首先安装一些插件链

pnpm add stylelint stylelint-prettier stylelint-config-standard stylelint-config-recommended-less postcss-html stylelint-config-recommended-vue stylelint-config-recess-order stylelint-config-prettier -D -w

然后新建.stylelintrc.cjs

module.exports = {
  // 注册 stylelint 的 prettier 插件
  plugins: ['stylelint-prettier'],
  // 继承一系列规则集合
  extends: [
    // standard 规则集合
    'stylelint-config-standard',
    'stylelint-config-recommended-less',
    // 样式属性顺序规则
    'stylelint-config-recess-order',
    // 接入 Prettier 规则
    'stylelint-config-prettier',
    'stylelint-prettier/recommended'
  ],
  // 配置 rules
  rules: {
    // 开启 Prettier 自动格式化功能
    'prettier/prettier'true
  }
};

在 package.json 中新增 script 命令

{
  "scripts": {
    // stylelint 命令
    "lint:style""stylelint --fix "*.{css,less}""
  }
}

执行pnpm run lint:style即可完成样式的格式化,同样的如果你想要保存时自动格式化可以在 VSCode 安装 Stylelint

从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
image.png

安装完成后你会发现.vue 文件会提示错误

从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
image.png

这是因为 Stylelint14 版本以上竟然不兼容 Vue3! 我查询了网上的配置基本都是 14 版本一下的配置,遇到这种错误的解决办法都是降级处理。但是我还是要用最新的,这里找到一个解决办法,因为我们组件库的样式文件都是分开写的,所以我们找到 Styulelint 的配置将 vue 删掉即可

从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
image.png

这样我们便完成了 Stylelint 的配置

如果这篇文章给你带来了帮助,欢迎点赞+关注+收藏!

微信公众号发送 代码地址 获取仓库地址


原文始发于微信公众号(web前端进阶):从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)

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

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

(0)
小半的头像小半

相关推荐

发表回复

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