每次pnpm i之后.husky内的配置就会被重置?

我在scripts内添加了prepare命令用于创建husky文件夹

 "scripts": {
    "prepare": "husky install"
  },

每次pnpm i的时候会执行一次prepare脚本并初始化husky文件夹
image.png
之前已经配置过的pre-commit命令会被重置,这样做团队成员每次安装依赖husky文件夹就会被初始化,内部配置需要手动再配置一次,非常麻烦。
如何保持.husky的配置?在安装依赖的时候不初始化pre-commit命令?
另外,我看到其它项目的.husky文件夹内只有commit-msg和pre-commit两个文件,为何我初始化后会有这么多文件?

版本: "husky": "^9.0.11",

阅读 529
avatarAI BotBETA
### 回答

要解决这个问题,你需要确保 `.husky` 目录和其中的钩子文件在版本控制中被正确跟踪,并且避免在每次安装依赖时重新初始化 Husky。

1. **确保 `.husky` 目录被版本控制**:
   确保 `.husky` 目录及其内容(如 `pre-commit` 文件)已经被添加到你的版本控制系统(如 Git)中。这样,团队成员在克隆仓库时会得到这些配置,而不需要重新初始化。

2. **修改 `prepare` 脚本**:
   由于每次运行 `pnpm i` 都会执行 `prepare` 脚本,而 `husky install` 会尝试重新创建 `.husky` 目录和钩子文件,你需要修改这个行为。你可以改为只在第一次设置 Husky 时运行 `husky install`,或者在 `prepare` 脚本中检查 `.husky` 目录是否存在,如果不存在再运行 `husky install`。不过,更常见的做法是直接移除 `prepare` 脚本中的 `husky install`,因为一旦 `.husky` 目录被版本控制,就不需要每次安装依赖时都重新安装 Husky。

"scripts": {

 // 移除或注释掉 "prepare": "husky install"

}


3. **关于 `.husky` 文件夹内的文件数量**:
Husky 9 使用了新的配置方式,它可能会生成多个文件来管理不同的钩子。这是 Husky 9 的正常工作方式,与旧版本(如 Husky 4 或 5)只生成 `pre-commit` 和 `commit-msg` 文件不同。这些文件是 Husky 管理钩子所需的,你不需要手动修改它们。

4. **保持配置**:
一旦 `.husky` 目录和钩子文件被正确设置并添加到版本控制中,团队成员在克隆仓库并运行 `pnpm i` 后,这些钩子应该会自动生效,无需再次手动配置。

通过以上步骤,你应该能够解决每次安装依赖时 `.husky` 配置被重置的问题,并理解为什么 `.husky` 文件夹内会有多个文件。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏