作者:D萳飝赝_870 | 来源:互联网 | 2023-08-29 10:10
解决参考:https://github.com/yarnpkg/yarn/issues/7521
问题描述:私有依赖包发布最新版本后重新在项目中安装报错指出:该依赖的tzg文件报错——unexpected end of file
解决过程:
1. 删除yarn.lock和package-lock.json文件后,重新yarn install,报错:找不到tslib(正好是该私有依赖包的一个依赖模块);
2. yarn --registry https://registry.npmjs.org 指定yarn镜像地址到npm安装地址(此时项目中yarnrc文件中指定了私有依赖包的地址为阿里云效的镜像),安装成功,并能正常启动编译打包等操作。
此时发现yarn.lock中的私有依赖包的地址仍然是yarnrc文件中指定的地址,此外的其他包的地址都是https://registry.npmjs.org/XXX;
3. 其他人使用该yarn.lock文件重新安装依赖也都没有问题,但在Jenkins上使用该yarn.lock文件来拉取依赖仍旧报错,该私有依赖的tzg文件报错——unexpected end of file
4.在Jenkins上清理yarn缓存(yarn cache clean),再次拉取依赖,操作成功。
5.但是过了一段时间后,切换Jenkins的node,使用之前安装失败的yarn.lock文件也可以拉取远程依赖了。。。
根据操作和结果猜测,是yarn安装私有依赖库时,该yarn镜像的服务崩溃,导致拉不到远程依赖包,调整yarn.lock(删除yarn.lock,指定yarn镜像地址来安装依赖【 yarn --registry https://registry.npmjs.org 】 生成新的yarn.lock再推到远程用于部署时的依赖安装指引。
将本地/Jenkins的yarn缓存清理(yarn cache clean),再进行yarn( install)安装依赖后进行项目打包。