承诺- 配置- g2
G2 存储器的常见任务配置 .
这个一揽子计划的目的是帮助带来 G2型普通的git通过安装在承诺时间内执行的钩子和检查对所有寄存器执行标准,帮助开发者正确格式化承诺信息,并确保承诺的代码通过标准检查.
本套件拟与 嘘 财务报告和审定财务报表 承诺.Husky 负责安装和执行 git 承诺钩,使用承诺钩,而承诺钩又使用本包提供的 G2 特定配置.
准备使用 husky 和 complint 的仓库
如果您的仓库不是 节点 并不存在 package.json 在顶层的文件中,您需要创建一个,这样您就可以安装此软件包,以及 husky 和 complint 和所有相关的依赖.
准备方便节点的环境
如果您的 repo 已经支持了节点并有一个 package.json 档案中.
在G2安装节点和管理其版本的首选方式是: 亚投行。请访问ASDF网站了解如何最好地安装ASDF并在您的平台上不断更新.
ASDF安装后,您需要安装它 节点插件 根据链接页的指示。 然后,通过发布节点,安装最近版本的节点 asdf install nodejs <version> 命令。 目前可用的最新节点版本通常是一个安全的选择;您可以通过发布 ASDF 来获得所有通过 ASDF 可用的节点版本列表 asdf list-all nodejs 命令.
最后,将已安装的节点版本设置为本地节点版本,供您的 repo, by cd进入复制您的回波的目录,并发布 asdf local nodejs <version> 命令.
您可能需要安装 线条 软件包管理器是首选的管理方式 无 g2 软件包 有一个 线条的 ASDF 插件 还有.
G2广泛采用的另一个有用工具是: 缩写。可用于添加本地 node_modules/.bin 路径到 $PATH 使各种国家预防机制包所安装的所有本地可执行文件都能被看到。 一旦您按照上面链接的网站的指令安装了 prinv, 您可以添加 node_modules/.bin 通过创建(或编辑已存在的)路径 .envrc 在您的 repo 根目录中添加以下行:
path_add PATH node_modules/.bin
(你需要发布 direnv allow 命令后,让prinv接取修改并付诸实施.
既然我们会把节点模块安装到repo的 node_modules 目录(可能尚不存在,但将在接下来的步骤中创建),一个好主意是添加 /node_modules 路径进入您的 .gitignore 这样安装的第三方模块就不会意外地进入您的repo.
现在是时候创造一个 package.json 文档。 一种简单的方法就是发布 npm init 命令将询问几个简单的问题,并创建一个新的 package.json 文件在结尾。 如果你不知道如何回答某些问题(例如作者,许可等),就找一个已有的已节点启用的G2回波,并查看其中的值 package.json 作为参考.
安装和配置软件包
我们将在此段安装几个节点包,以启用 git shooks 和自动起伏. 请注意,所有软件包将安装为 development 通过提供 --dev 标记为 yarn add 命令.
首先,安装此软件包 :
yarn add --dev @g2crowd/commitlint-config-g2
现在在您名为 repo 的根上创建文件 commitlint.config.js 内容如下:
module.exports = {
extends: ['@g2crowd/commitlint-config-g2']
};
这将让承诺使用 G2 特定配置 .
您还需要安装一些与承诺连接的软件包以及 承诺数字 :
yarn add --dev @commitlint/cli @commitlint/cz-commitlint commitizen
Countizen提供了执行承诺规则的命令行接口,它与contlint配合得很好.
一旦安装,一个相关的 config 区域需要添加到 package.json 内容如下:
"config": {
"commitizen": {
"path": "@commitlint/cz-commitlint"
}
}
这个 config 区域应位于 package.json (与 name, (中文(简体) ), description(见A/C.5/49/70,附件)。 如果不是您最后的键,请不要忘记在后方插入逗号 package.json。 。 。 .
通过这些变化,你现在应该能够使用 git cz 命令作为替换 git commit。如果您遵循了上述所有步骤并正确配置了所有东西,您将有一个交互承诺会话,该会话将提示您选择更改的类型,输入描述,引用任何受更改影响的JIRA门票等.
启用新基特钩需要安装的另一种工具是husky:
yarn add --dev husky
一旦添加了Husky软件包,您首先需要通过发布该软件包来初始化 install 命令 :
husky install
(如果你的外壳找不到) husky 此时可执行文件, 请确保您遵守上面的 prinv 指令 ) .
现在,让我们创造一些胡斯基钩.
第一个会确保承诺信息的格式正确, 并且会中止任何不遵循公约的信息:
husky add .husky/commit-msg 'commitlint --edit $1'
如果你想在承诺完成前 检查你的代码,你可以安装 阶段 加上一个额外的胡斯基钩来引用它:
yarn add --dev lint-staged
husky add .husky/pre-commit 'lint-staged'
Lint- staged 需要一个名为配置文件的配置文件 .lintstagedrc.yml ,需要放在您的 repo 的根目录中。 文件内部的规则是语言特异性的,你可以在这个readme中各自的语言特异性章节中找到下面各种语言的例子. 为了支持更好的内衬,可能需要安装各种额外的语言特有软件包.
Husky git hooks 不仅可以对代码进行闪烁,还可以执行承诺信息的格式. 例如,G2级 队 repo 包含使用 a pre-push 钩子可以执行分支命名惯例,确保不直接推动 main 树枝。 参见 https://github.com/g2crowd/ue/blob/main/.husky/pre-push 页面存档备份,存于互联网档案馆 了解更多这方面的信息.
铁路专用相位布局
现代铁路版本依靠节点为前端资产服务,所以这个例子 .lintstagedrc.yml 下面的配置文件包含Ruby和Javascript代码的规则:
'*.js':
- eslint
- prettier --write
'*.rb':
- rubocop --color
'*.scss':
- stylelint
'*.slim':
- slim-lint
'_*.{erb,slim}':
- partial-instance-variables
'**/vendor_admin/**/*.{erb,slim}':
- myg2-instance-variables
'*.svg':
- svgo
这个例子依赖于项目中的两颗红宝石 Gemfile 作为《京都议定书》 development 组 : rubocop-g2 财务报告和审定财务报表 slim_lint。 。 。 .
其他语言特异性 Lint-staged 配置.
请在设置您的项目后在此贡献 .