0

0

0

修罗

站点介绍

只有了解事实才能获得真正的自由

前端开发初始化规范editorconfig/eslint/prettier/git

修罗 2021-11-01 1501 0条评论 vue3

首页 / 正文

创建vue项目

1.安装Vue脚手架
npm install -g @vue/cli
2.执行命令
vue create 项目名

1635753413540.png

项目搭建规范

一. 代码规范

1.1. 集成editorconfig配置

EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。

  • 项目根目录新建.editorconfig文件

1635769552458.png

# http://editorconfig.org

root = true # 表示配置在根路径

[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8
indent_style = space # 缩进风格(tab | space)
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行首的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行

[*.md] # 表示仅 md 文件适用以下规则
max_line_length = off
trim_trailing_whitespace = false

VSCode需要安装一个插件配置才生效,webstorm不需要:EditorConfig for VS Code

008i3skNgy1gsq2gh989yj30pj05ggmb.jpg

1.2. 使用prettier工具

Prettier 是一款强大的代码格式化工具,基本上前端能用到的文件格式它都可以搞定。

1.安装prettier可以脱离vscode进行格式化代码。

npm install prettier -D

2.配置.prettierrc文件:

  • useTabs:使用tab缩进还是空格缩进,选择false;
  • tabWidth:tab是空格的情况下,是几个空格,选择2个;
  • printWidth:当行字符的长度,推荐80,也有人喜欢100或者120;
  • singleQuote:使用单引号还是双引号,选择true,使用单引号;
  • trailingComma:在多行输入的尾逗号是否添加,设置为 none
  • semi:语句末尾是否要加分号,默认值true,选择false表示不加;
{
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 80,
  "singleQuote": true,
  "trailingComma": "none",
  "semi": false
}

3.创建.prettierignore忽略文件

/dist/*
.local
.output.js
/node_modules/**

**/*.svg
**/*.sh

/public/*

1635769665720.png

4.VSCode需要安装prettier的插件

008i3skNgy1gsq2acx21rj30ow057mxp.jpg

5.测试prettier是否生效

  • 测试一:在代码中保存代码或右键格式化代码;
  • 测试二:配置一次性修改的命令;

在package.json中配置一个scripts:

    "prettier": "prettier --write ."

1635769746790.png

1.3. 使用ESLint检测

1.在前面创建项目的时候,我们就选择了ESLint,所以Vue会默认帮助我们配置需要的ESLint环境。

2.VSCode需要安装ESLint插件:

008i3skNgy1gsq2oq26odj30pw05faaq.jpg

3.解决eslint和prettier冲突的问题:

安装插件:(vue在创建项目时,如果选择prettier,那么这两个插件会自动安装)

npm i eslint-plugin-prettier eslint-config-prettier -D

添加prettier插件:

  extends: [
    "plugin:vue/vue3-essential",
    "eslint:recommended",
    "@vue/typescript/recommended",
    "@vue/prettier",
    "@vue/prettier/@typescript-eslint",
    'plugin:prettier/recommended'
  ],

1635769787514.png

1.4. git Husky和eslint

虽然我们已经要求项目使用eslint了,但是不能保证组员提交代码之前都将eslint中的问题解决掉了:

  • 也就是我们希望保证代码仓库中的代码都是符合eslint规范的;
  • 那么我们需要在组员执行 git commit 命令的时候对其进行校验,如果不符合eslint规范,那么自动通过规范进行修复;

那么如何做到这一点呢?可以通过Husky工具:

  • husky是一个git hook工具,可以帮助我们触发git提交的各个阶段:pre-commit、commit-msg、pre-push

如何使用husky呢?

这里我们可以使用自动配置命令:

npx husky-init
yarn

这里会做三件事:

1.安装husky相关的依赖:

008i3skNgy1gsqq0o5jxmj30bb04qwen.jpg

2.在项目目录下创建 .husky 文件夹:

npx husky install

008i3skNgy1gsqq16zo75j307703mt8m.jpg

3.在package.json中添加一个脚本:

008i3skNgy1gsqq26phpxj30dj06fgm3.jpg

接下来,我们需要去完成一个操作:在进行commit时,执行lint脚本:

008i3skNgy1gsqq3hn229j30nf04z74q.jpg

这个时候我们执行git commit的时候会自动对代码进行lint校验。
1635756954074.png

1.5. git commit规范

1.5.1. 代码提交风格

通常我们的git commit -m '...' ...会按照统一的风格来提交,这样可以快速定位每次提交的内容,方便之后对版本进行控制。

008i3skNgy1gsqw17gaqjj30to0cj3zp.jpg

但是如果每次手动来编写这些是比较麻烦的事情,我们可以使用一个工具:Commitizen

  • Commitizen 是一个帮助我们编写规范 commit message 的工具;

1.安装Commitizen

npm install commitizen -D

2.安装cz-conventional-changelog,并且初始化cz-conventional-changelog:

npx commitizen init cz-conventional-changelog --save-dev --save-exact

这个命令会帮助我们安装cz-conventional-changelog:

008i3skNgy1gsqvz2odi4j30ek00zmx2.jpg

并且在package.json中进行配置:

008i3skNgy1gsqvzftay5j30iu04k74d.jpg

这个时候我们提交代码需要使用 npx cz

1635757717875.png

  • 第一步是选择type,本次更新的类型
Type作用
feat新增特性 (feature)
fix修复 Bug(bug fix)
docs修改文档 (documentation)
style代码格式修改(white-space, formatting, missing semi colons, etc)
refactor代码重构(refactor)
perf改善性能(A code change that improves performance)
test测试(when adding missing tests)
build变更项目构建或外部依赖(例如 scopes: webpack、gulp、npm 等)
ci更改持续集成软件的配置文件和 package 中的 scripts 命令,例如 scopes: Travis, Circle 等
chore变更构建流程或辅助工具(比如更改测试环境)
revert代码回退
  • 第二步选择本次修改的范围(作用域)

008i3skNgy1gsqw8ca15oj30r600wmx4.jpg

  • 第三步选择提交的信息

008i3skNgy1gsqw8mq3zlj60ni01hmx402.jpg

  • 第四步提交详细的描述信息

008i3skNgy1gsqw8y05bjj30kt01fjrb.jpg

  • 第五步是否是一次重大的更改

008i3skNgy1gsqw9z5vbij30bm00q744.jpg

  • 第六步是否影响某个open issue

008i3skNgy1gsqwar8xp1j30fq00ya9x.jpg

我们也可以在scripts中构建一个命令来执行 cz:

008i3skNgy1gsqwc4gtkxj30e207174t.jpg

1.5.2. 代码提交描述验证

如果我们按照cz来规范了提交风格,但是依然有同事通过 git commit 按照不规范的格式提交应该怎么办呢?

  • 我们可以通过commitlint来限制提交;

1.安装 @commitlint/config-conventional 和 @commitlint/cli

npm i @commitlint/config-conventional @commitlint/cli -D

2.在根目录创建commitlint.config.js文件,配置commitlint

module.exports = {
  extends: ['@commitlint/config-conventional']
}

3.使用husky生成commit-msg文件,验证提交信息:

npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"

1635769853731.png

评论(0)


最新评论

  • https://www.studyglobus.com/author/carroll34a5552/

    Ценники на вывоз мусора сейчас космос, любые лайфхаки по экономии в тему.

  • Richardgrold

    1xbet onlayn kazino platforması ilə vaxtınızı daha səmərəli və maraqlı keçirin. Saytın canlı kazino bölməsi istifadəçilərə fərqli bir dünya təklif edir. Burada canlı dilerli kazino oyunlarının hər bir növünü sınaqdan keçirə bilərsiniz. Krupyelərin peşəkarlığı oyunun dinamikasını və marağını artırır. Müntəzəm olaraq yenilənən oyun siyahısı cansıxıcılığa yol vermir. Hesabınızı artırmaq üçün onlarla fərqli və etibarlı üsul mövcuddur. Qazanılan pullar cəmi bir neçə dəqiqə ərzində şəxsi hesabınıza köçürülür. Aktiv fəaliyyətinizə görə fərdi bonuslar və hədiyyələr qazana bilərsiniz. Dəstək xidməti həm çat, həm də e-poçt vasitəsilə kömək göstərir. 1xbet ailəsinə qoşulun və böyük uduşlar üçün ilk addımı atın. onlayn kazino

  • 砂岩白丘

    我一直梦想, 看到你们相册那样的地方。真棒。

  • 城市地標

    我喜欢, 这里分享真实经验。你的项目 就是 属于这里的。请继续。

  • 宗教地標

    我热爱这样的想法, 去那么多国家。真的很鼓舞。

  • 觀景高地

    能感受到热爱。继续保持 感受。

  • 最佳季節

    我关注这样的资源, 写得很实在。你的网站 就是 属于这里的。加油。

  • 1

    1

  • 1

    1

  • -1' OR 2+158-158-1=0+0+0+1 or 'TKCTZnRa'='

    1

日历

2026年07月

   1234
567891011
12131415161718
19202122232425
262728293031 

文章目录

推荐关键字: Linux webpack js 算法 MongoDB laravel JAVA jquery javase redis