git - 以分支安装 NPM 包为目标时,如何定位 (Lerna) monorepo 的子目录?
问题描述
有时,将 git 分支作为目标是很有用的(如Depend on a branch or tag using a git URL in a package.json?),例如:
"dependencies": {
"@my-company-internal-scope/some-package": "git+ssh://git@git.mycompany.internal.example.com:some-package.git#some-branch"
}
(值得注意的是,这是一个本地 git 解决方案,而不是例如 github.com 或 gitlab.com - 但我看不出这会如何影响我想在这里做的事情。我只是指出它是因为我无法指导你到目标仓库,我只能描述一下,如下……)
我们已经切换到使用Lerna,并且我们在 monorepo 中有一些模块。
基本上,我们在这个存储库中的根级 package.json 不是根级 package.json 和模块导出,而是如下所示:
{
"name": "irrelevantAndIWillAlsoBeOmittingOtherSuperfluousDetails",
// ...
"devDependencies": {
"lerna": "^3.16.4"
},
"dependencies": {
"some-module": "file:./packages/some-module",
"some-other-module": "file:./packages/some-other-module"
},
}
在 中,它是没有概念packages/some-module
的模块导出(它有自己的) ,但值得注意的是其中的字段是指monorepo:package.json
lerna
repository
package.json
"publishConfig": {
"registry": "https://artifacts.tools.my-company.example.com/registry"
},
"repository": {
"type": "git",
"url": "git@my-company.example.com:department/component-monorepo.git"
},
我想要做的是some-package
在 monorepo 中定位#nonstandard-branch
。我怎样才能做到这一点?
(只是呼吁,因为依赖这些进行安装可能不是最佳实践:这不是永久性的,这是一个临时的工作流程。假设我们必须部署需要模块级修复的东西和拥有工件的团队发布系统都放假了。这些细节应该和你无关,我只是不想以“是的,只要发布版本,如果你担心就让它成为预发布”作为答案。)
解决方案
推荐阅读
- android - 如何在 react native 中制作聊天框?
- javascript - 处理动态地图内容(标记)的正确方法
- javascript - 如何从两个元素中获取文本,将它们转换为数字并将它们添加到柏树中?
- python - 调试python代码(VSCODE)时终端出错
- hyperlink - 用于智能卡的 Java Card 技术:架构和程序员指南,陈志群
- algorithm - 算法的复杂度是多少?
- javascript - 每次用户输入用户名时发送 Ajax 请求以检查用户名的可用性。这种方法有什么缺点?
- javascript - Nuxtjs + Vuetify 点击链接后用 v-for 显示 img
- java - 如何将未知的传入 requestParam 传递给 Spring Boot 中的帖子?
- python - 带有转换器或 dtype 的 pd.read_excel 不起作用