Yarn 3无法添加Git私有自定义包,Yarn 1可正常运行求解决方案
解决Yarn 3引入Git私有类库未构建问题
方法1:给类库添加prepare构建脚本
Yarn 3不会自动触发Git依赖的构建流程,需要在私有类库的package.json中配置prepare脚本,让Yarn在安装时自动完成构建:
{ "scripts": { "prepare": "tsc && [你的组件打包命令,比如vite build/rollup等]" } }
把这个修改提交到私有Git仓库后,重新执行yarn add @git+<你的私有仓库地址>,Yarn会在安装过程中自动运行构建脚本。
方法2:明确类库的构建产物入口
确保私有类库的package.json中,入口字段指向构建后的产物文件,而不是源码:
{ "main": "./dist/index.js", "module": "./dist/index.esm.js", "types": "./dist/index.d.ts" }
这里的dist是常规构建输出目录,根据你类库的实际构建路径调整即可。Yarn 3会优先读取这些字段加载正确的构建后文件。
方法3:在项目中配置Yarn强制执行构建
如果无法修改私有类库的配置,可以在使用类库的项目根目录下的.yarnrc.yml中添加以下配置:
installConfig: runScripts: prepare buildFolders: - "dist"
该配置会强制Yarn在安装所有Git依赖时,执行包的prepare脚本,并检查指定的构建目录是否存在。
方法4:预构建类库并引用产物分支
如果上述方法都不适用,可以给私有类库单独创建一个存储构建产物的分支:
- 在类库本地执行构建命令,生成
dist等构建目录 - 将构建目录提交到新分支(比如
built分支,注意不要在.gitignore中忽略这些文件) - 在项目中通过该分支安装:
yarn add @git+<你的私有仓库地址>#built
内容的提问来源于stack exchange,提问作者Faize Ertürk
相关产品推荐
相关产品推荐

