马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
前言
团队代码规范实践落地。仅供参考
一、 设置 ESLint
ESLint的最佳落地实践涉及多个方面,包括设置、集成、实行和监测等。以下是一些关键步骤和最佳实践,以确保ESLint在团队中有效落地:
- ESLint官方文档:ESLint - Pluggable JavaScript linter - ESLint中文
安装依赖
- pnpm install -D eslint @eslint/create-config
复制代码 生成设置文件
- # 生成 ESLint 配置文件模板
- npx eslint --init
复制代码- # 出现如下选择
- # 选择2 我们会使用 prettier 进行代码风格校验
- How would you like to use ESLint?
- 1.只检查语法
- 2.检查语法并提示问题
- 3.检查语法、提示问题并且强制使用一些代码风格
- # 你的项目用的哪一种模块化方式 选择1
- What type of modules does your project use?
- 1.ES6
- 2.CommonJS
- 3.None
- # 使用的框架 选择2
- Which framework does your project use?
- 1.React
- 2.Vue.js
- 3.None
- # 项目是否使用TS yes
- Does your project use TypeScript?
- # 项目在哪里跑的 选择1
- Where does your code run?
- 1.browser
- 2.node
- # 项目用哪种配置文件 选择1
- What format do you want your config file to be in?
- 1.JavaScript
- 2.YAML
- 3.JSON
-
- # 是否立即安装需要的依赖
- Would you like to install them now?
- # 会帮我们安装如下插件
- # pnpm install -D eslint-plugin-vue@latest @typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest
复制代码- module.exports = {
- // 使 eslint 支持 node 与 ES6
- env: {
- browser: true,
- es2021: true,
- node: true,
- },
- // 引入推荐的语法校验规则
- extends: [
- 'plugin:vue/vue3-recommended',
- 'plugin:@typescript-eslint/recommended',
- ],
- overrides: [],
- /*
- 这里一定要配置对 先使用vue-eslint-parser 再使用@typescript-eslint/parser
- 先解析 <template> 标签中的内容 然后再解析 vue <script> 标签中的 TS 代码
- */
- // 选择使用的解析器
- parser: 'vue-eslint-parser',
- // 解析器的详细配置
- parserOptions: {
- // 使用最新版 ES 语法
- ecmaVersion: 'latest',
- // 使用 ESLint TS 解析器
- parser: '@typescript-eslint/parser',
- // 使用 ES 模块化规范
- sourceType: 'module',
- },
- // 使用的插件
- plugins: ['vue', '@typescript-eslint'],
- // 自定义规则
- rules: {},
- };
复制代码
- // package.json
- // --cache 为仅检测改动过的代码
- // --max-warnings 0 表示出现超过0个警告强制eslint以错误状态推出
- "scripts": {
- "lint:eslint": "eslint --cache --max-warnings 0 {src,mock}/**/*.{vue,ts,tsx} --fix",
- },
复制代码 我们还可以设置忽略文件,让 ESLint 不对这些文件举行校验。
新建 .eslintignore 举行设置。
- node_modules
- *.md
- .vscode
- .idea
- dist
- /public
- /docs
- .husky
- .local
- /bin
复制代码 自动修复
- WebStorme:直接在Setting中搜索ESLint即可举行设置
- VSCode:必要在项目目次下参加如下设置文件,还必要下载ESLint插件
/.vscode/settings.json
- {
- "editor.codeActionsOnSave": {
- "source.fixAll": true
- }
- }
复制代码 二、设置 Prettier
- 多人协作的项目开发中,保持同一的代码风格是一件很紧张的事。
- Prettier就可以帮我们做到这个事情,但是ESLint不是也能规范代码风格么?可以是可以,但是相比Prettier差了许多,术业有专攻,Prettier可以让我们拥有超级整齐的代码。可以资助我们设置是否使用分号,缩进的格式等等。
- 官方文档:Prettier 中文网 · Prettier 是一个“有态度”的代码格式化工具
安装依赖
添加设置文件
- Prettier设置文件名称可以为:.ptettierrc.js、.ptettier.config.js (根据个人习惯选择即可)
- 下面是我常用的一些设置,更多设置规则各人可以前官网检察:Options · Prettier 中文网
- module.exports = {
- printWidth: 120, //单行长度
- tabWidth: 4, //缩进长度
- useTabs: true, //使用空格代替tab缩进
- semi: true, //句末使用分号
- singleQuote: true, //使用单引号
- endOfLine: "auto",
- trailingComma: "none", // 对象最后一个属性末尾是否要逗号
- };
复制代码
- 设置一个指令便于我们使用prettier举行修复代码风格
- {
- "script": {
- "lint:prettier": "prettier --write **/*.{js,json,tsx,css,less,scss,vue,html,md}",
- }
- }
复制代码 办理ESLint与Prettier辩论标题
安装依赖
- pnpm install -D eslint-config-prettier eslint-plugin-prettier
复制代码
- eslint-config-prettier 的作用是关闭eslint中与prettier相互辩论的规则。
- eslint-plugin-prettier 的作用是赋予eslint用prettier格式化代码的本领。 安装依赖并修改.eslintrc文件。
设置ESLint
- / 此配置在eslint配置文件中新增
- "extends": [
- "eslint:recommended",
- "plugin:vue/vue3-recommended",
- "plugin:@typescript-eslint/recommended",
- "plugin:prettier/recommended" // 在最后面新增extends
- ],
复制代码 设置完成之后我们对代码风格的设置只会使用prettier的设置,相当于将eslint中辩论的规则覆盖掉了。
我们还可以设置忽略文件,让 Prettier 不对这些文件举行校验。
新建 .prettierignore 举行设置。
三、设置 StyleLint
- Stylelint 是一个强盛、先进的 CSS 代码查抄器(linter),可以资助你规避 CSS 代码中的错误并保持一致的编码风格。
- 但是 StyleLint 与 Prettier 也有设置辩论,所以我们也要将 StyleLint 中与 Prettier 辩论的设置关闭。
安装依赖
- pnpm install -D stylelint stylelint-config-standard
- pnpm install -D stylelint-config-prettier stylelint-config-html stylelint-order stylelint-less postcss-html postcss-less stylelint-config-standard-vue
复制代码
- stylelint-config-standard:StyleLint 推荐设置
- stylelint-config-prettier:关闭与 prettier 辩论的设置
- stylelint-config-standard-vue:StyleLint Vue 项目推荐设置
- postcss-html postcss-less:支持查抄 less 与 html
- stylelint-order:支持 css 样式排序
添加设置文件
- Prettier设置文件名称可以为:.stylelintrc.js、.stylelint.config.js (根据个人习惯选择即可)
- 更多详细设置规则请检察官方文档:List of rules | Stylelint 中文文档 (bootcss.com)
- module.exports = {
- // 继承推荐规范配置
- extends: [
- 'stylelint-config-standard',
- 'stylelint-config-prettier',
- 'stylelint-config-recommended-scss',
- 'stylelint-config-standard-vue',
- ],
- // 添加规则插件
- plugins: ['stylelint-order'],
- // 不同格式的文件指定自定义语法
- overrides: [
- {
- files: ['**/*.(scss|css|vue|html)'],
- customSyntax: 'postcss-scss',
- },
- {
- files: ['**/*.(html|vue)'],
- customSyntax: 'postcss-html',
- },
- ],
- // 忽略检测文件
- ignoreFiles: [
- '**/*.js',
- '**/*.jsx',
- '**/*.tsx',
- '**/*.ts',
- '**/*.json',
- '**/*.md',
- '**/*.yaml',
- ],
- // 自定义配置规则
- rules: {
- // 便于配置变量 关闭未知属性检测
- 'property-no-unknown': null,
- // 指定类选择器的模式
- 'selector-class-pattern': null,
- // 允许 Vue 的 global
- 'selector-pseudo-class-no-unknown': [
- true,
- {
- ignorePseudoClasses: ['global'],
- },
- ],
- // 允许 Vue 的 v-deep
- 'selector-pseudo-element-no-unknown': [
- true,
- {
- ignorePseudoElements: ['v-deep'],
- },
- ],
- // 允许对应内核前缀
- 'property-no-vendor-prefix': null,
- },
- };
复制代码 我们还可以设置忽略文件,让 StyleLint 不对这些文件举行校验。
新建 .stylelintignore 举行设置。
- /dist/*
- /public/*
- public/*
- /mock/*
- /node_modules/*
- /types/*
复制代码 四、设置 Husky
- 团队协作时,我们会碰到多种标题,最让人难熬的就是每个人誊写的代码风格不一致
|