webpack详情3

该博客详细介绍了如何在VSCode中配置EditorConfig、Prettier、stylelint和ESLint,以及如何通过husky与lint-staged优化提交前的语法检查。此外,还涵盖了Commitlint和Commitizen的设置,以确保提交信息的规范性。整个过程旨在提升前端项目的代码质量和一致性。
摘要由CSDN通过智能技术生成

editorconfig

在项目中引入 editorconfig 是为了在多人协作开发中保持代码的风格和一致性。不同的开发者使用不 同的编辑器或IDE ,可能会有不同的缩进(比如有的人喜欢 4 个空格,有的喜欢 2 个空格)、换行符、编码 格式等。甚至相同的编辑器因为开发者自定义配置的不同也会导致不同风格的代码,这会导致代码的可 读性降低,增加代码冲突的可能性,降低了代码的可维护性。
EditorConfig 使不同编辑器可以保持同样的配置。因此,我们得以无需在每次编写新代码时,再
依靠 Prettier 来按照团队约定格式化一遍(出现保存时格式化突然改变的情况) 。当然这需要在
你的 IDE 上安装了必要的 EditorConfig 插件或扩展。
安装 EditorConfig for VS Code
目前主流的编辑器或者 IDE 基本上都有对应的 EditorConfig 插件,有的是内置支持的(比如,
WebStorm 不需要独立安装 EditorConfig 的插件),有的需要独立安装。

需要注意的是,不同的插件对 EditorConfig 属性的支持度不一样,笔者使用的是 VS Code

{
"recommendations": ["editorconfig.editorconfig"]
}
为什么要做这个操作? 假如哪天项目新来一个协同开发的同学,当他拉取取项目,用 vscode
开项目的时候,编辑器就会自动提醒他安装这个插件,并将相关的配置做设定。下面的 eslint
prettier 插件也是类似

新建 .editorconfig

在根目录新建 .editorconfig 文件:

# https://editorconfig.org
root = true # 设置为true表示根目录,控制配置文件 .editorconfig 是否生效的字段
[*] # 匹配全部文件,匹配除了 `/` 路径分隔符之外的任意字符串
charset = utf-8 # 设置字符编码,取值为 latin1,utf-8,utf-8-bom,
utf-16be 和 utf-16le,当然 utf-8-bom 不推荐使用
end_of_line = lf # 设置使用的换行符,取值为 lf,cr 或者 crlf
indent_size = 2 # 设置缩进的大小,即缩进的列数,当 indexstyle 取值 tab
时,indentsize 会使用 tab_width 的值
indent_style = space # 缩进风格,可选space|tab
insert_final_newline = true # 设为true表示使文件以一个空白行结尾
trim_trailing_whitespace = true # 删除一行中的前后空格
[*.md] # 匹配全部 .md 文件
trim_trailing_whitespace = false
上面的配置可以规范本项目中文件的缩进风格,和缩进空格数等,会覆盖 vscode 的配置,来达到不同 编辑器中代码默认行为一致的作用。
VS Code EditorConfig 目前支持下列属性:
  • indent_style
  • indent_size
  • tab_width
  • end_of_line (on save)
  • insert_final_newline (on save)
  • trim_trailing_whitespace (on save)

prettier

每个人写代码的风格习惯不一样,比如代码换行,结尾是否带分号,单双引号,缩进等,而且不能只靠口头规范来约束,项目紧急的时候可能会不太注意代码格式,这时候需要有工具来帮我们自动格式化代 码,而prettier就是帮我们做这件事的。

安装 VS Code 插件和 prettier

安装 prettier
pnpm i prettier -D

 新建 .prettierrc.js

在根目录下新建 .prettierrc.js .prettierignore 文件:

// .prettierrc.js
module.exports = {
tabWidth: 2, // 一个tab代表几个空格数,默认就是2
useTabs: false, // 是否启用tab取代空格符缩进,.editorconfig设置空格缩进,所以设置为
false
printWidth: 100, // 一行的字符数,如果超过会进行换行
semi: false, // 行尾是否使用分号,默认为true
singleQuote: true, // 字符串是否使用单引号
trailingComma: 'all', // 对象或数组末尾是否添加逗号 none| es5| all
jsxSingleQuote: true, // 在jsx里是否使用单引号,你看着办
bracketSpacing: true, // 对象大括号直接是否有空格,默认为true,效果:{ foo: bar }
arrowParens: 'avoid' // 箭头函数如果只有一个参数则省略括号
}
// .prettierignore
node_modules
dist
env
.gitignore
pnpm-lock.yaml
README.md
src/assets/*
.vscode
public
.github
.husky

配置 .vscode/settings.json

配置前两步后,虽然已经配置 prettier 格式化规则,但还需要让 vscode 来支持保存后触发格式化, 在项目根目录新建 .vscode 文件夹,内部新建 settings.json 文件配置文件,代码如下:
{
"search.exclude": {
"/node_modules": true,
"dist": true,
"pnpm-lock.yaml": true
},
"files.autoSave": "onFocusChange",
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"javascript.validate.enable": false,
}
  • 若配置 "prettier.requireConfig": true 则要求根目录下有 Prettier 的配置文件,它会覆
    Prettier 扩展 中的默认配置, 否则保存时不会自动格式化
  • 若配置 "prettier.requireConfig": false 则不要求根目录下有配置文件,若有的话也会被感
    知到并以配置文件的内容为准。
这些代码的作用是:在编辑后保存 [xxx] 文件时,自动应用 Prettier 进行格式化,以确保代码
风格的一致性。
先配置了忽略哪些文件不进行格式化,又添加了保存代码后触发格式化代码配置,以及各类型文件格式化使用的格式。这一步配置完成后,修改项目代码,把格式打乱,点击保存时就会看到编辑器自动把代 码格式规范化了。
若设置需要配置文件,则必须要求根目录下有配置文件 .prettierrc.js .editorconfig 中的一个
或者两个同时存在,否则代码保存不会进行格式化。
可能你会对上面 .editorconfig 文件作为 Prettier 的配置文件感到疑惑, vscode Prettier
件中有关配置文件有这样的一段描述,

  • 可以看出Prettier插件获取配置文件有一个优先级: .prettierrc > .editorconfig > vscode认配置
  • 上面的前两者并不是说 .prettierrc .editorconfig 同时存在时,后者的配置内容就被忽
    略,实际的表现:
  • .prettierrc.js .editorconfig 同时存在时,二者内容会进行合并,若配置项有冲突,这
    .prettierrc 的优先级更高。

脚本命令检查和修复格式

package.json "scripts" 中加入以下脚本命令:

"lint:prettier": "prettier --write --loglevel warn \"src/**/*.
{js,ts,json,tsx,css,less,scss,stylus,html,md}\""

 这段代码是一个脚本命令,用于运行 Prettier <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值