背景
在本地安装husky以及配置之后,准备部署到测试环境,但是发现ci流程一直在抛出错误
仔细看,在npm install 的时候会自动执行npm run prepare.
当pull 下来仓库代码 install 完依赖之后,就会自动执行 prepare 脚本,于是 husky 就会被自动启用了。所以install之后就会执行husky install。但是查看package.json, husky放到了devDependencies中,所以就会报错。 husky 用于检查您的提交消息、运行测试、检查代码等Husky 支持所有 Git 钩子,所以Husky确实只需要在开发环境中安装。所以接下来要解决的问题是如何在CI部署流程中禁止Husky。
开始
首先想到的解决办法执行脚本中根据环境变量区分。此时查看部署sh文件,执行脚本之前有设置环境变量:$NODE_LUCKY_ENV,那就可以利用这个环境变量
改写prepare脚本:当$NODE_LUCKY_ENV != prod && test03 才执行husky install
swift
代码解读
复制代码
"prepare": "echo $NODE_LUCKY_ENV && if [ \"$NODE_LUCKY_ENV\" != \"prod\" ] && [ \"$NODE_LUCKY_ENV\" != \"test3\" ]; then husky install; fi",
原文链接:https://juejin.cn/post/7439350650826293300