NPM 依赖项 - Git 存储库中的文件夹?

问题描述 投票:0回答:2

NPM 是否支持通过 Git URL 将依赖项安装到存储库中的子文件夹?我检查了文档,看起来没有办法,但我无法明确告诉。

我知道确实如此,并且我知道如何设置 Git 存储库本身作为依赖项,如下所示:

  • (其他文件)
  • package.json

但我想做的基本上是使用 monorepo 模式(如 Babel),所以我会有一个与此类似的文件夹结构:

  • 套餐/
    • 套餐A/
      • package.json
    • 套餐B/
      • package.json
    • 包C/
      • package.json

然后就可以从同一个存储库安装它们,只需参考

packageA
packageB
packageC

我知道另一种选择是让它们全部成为一个模块的一部分,然后像

package/packageA
一样导入它们,但其中一些在概念上并不是超级相关,所以这不太理想。它们位于同一个存储库中的唯一原因是我不希望 NPM 模块存储库聚集到我们的存储库中。

我知道这通常是通过私有 NPM 存储库完成的,但我们目前无法访问该存储库,因此希望有一种替代方案。

有什么想法吗?

node.js git npm node-modules
2个回答
2
投票

看起来 https://gitpkg.now.sh/ 可能就是你想要的

查看它生成的链接,它似乎以某种方式充当您的包的代理,所以我不会在关键任务生产代码中使用它,但如果您尝试测试某些东西,它应该没问题在仓库之间工作


0
投票

我想我会在这里添加我的解决方案,以防其他人可以从中受益。 此解决方案假设您对存储库拥有完全控制权,并且它是专门为托管您自己的 NPM 包而设计的。

NPM 支持针对存储库的特定分支。 为您希望托管的每个包创建一个新分支。

  • 我的仓库
    • develop (空分支。也许可以将你的自述文件和 .gitignore 文件放在这里,以供其他仓库贡献者使用)
      • packageA (仅包含包 A 的文件的分支)
        • package.json 等 (文件必须位于 git 根目录)
      • B包
        • package.json等
      • C包
        • package.json等

在 package.json 文件中,像这样定位分支包:

    "packageA": "github:MyUserName/MyRepo.git#packageA",
    "packageB": "github:MyUserName/MyRepo.git#packageB",
    "packageC": "github:MyUserName/MyRepo.git#packageC",
© www.soinside.com 2019 - 2024. All rights reserved.