如何在Fork的Monorepo中使用单个npm Workspace/项目?
解决Monorepo子包的远程Fork安装问题
直接用npm的Git URL子目录语法就能搞定,不用纠结本地workspace的命令,具体操作如下:
直接安装命令:
如果你要安装fork后的monorepo里的某个子包,把原来的Git URL后面加上:packages/<子包名>就行,比如:npm i github:<你的GitHub用户名>/<monorepo仓库名>#<你修改后的commit哈希>:packages/<目标子包名>也可以用SSH或HTTPS格式的Git URL,比如:
npm i git+ssh://git@github.com:<你的GitHub用户名>/<monorepo仓库名>.git#<commit哈希>:packages/<目标子包名>在package.json里配置依赖:
更规范的方式是直接把依赖写进package.json的dependencies里,然后执行npm i:"dependencies": { "<目标子包名>": "github:你的用户名/monorepo仓库名#你的修改提交哈希:packages/子包目录名" }
这种方式本质是告诉npm:从指定的Git仓库、指定的commit哈希位置,把packages/<子包名>这个目录作为包来安装,完全适配monorepo的结构,不需要本地workspace的-w参数(那个确实只给本地开发用)。
安装完成后可以去node_modules里检查一下子包的内容,确认是你fork修改后的版本就没问题了。
内容的提问来源于stack exchange,提问作者nvahalik
相关产品推荐
相关产品推荐

