【问题标题】:How to support multiple private npm packages living in one git repo?如何支持一个 git repo 中的多个私有 npm 包?
【发布时间】:2013-04-24 17:00:20
【问题描述】:

npm 非常擅长支持发布到 global/central npm repo 的包,这不适用于私有应用程序代码。 npm 还支持添加一个 git repo 作为依赖,这样你就可以拥有一个私有依赖。

问题是,据我所知,最佳实践是,我的 npm 包往往非常紧凑和小,而我的 git 存储库往往更大,并且将包含几个 npm 包。在指向 github URL 时,我不知道有什么方法可以达到这种粒度。如何解决?

更新

我接受了“不要这样做,保持正常”的答案。我同意这个建议,但是 YMMV。

【问题讨论】:

  • 我认为这是不可能的。拥有多个 git 存储库有什么问题?
  • @TheHippo github 对每个 repo 收费。

标签: git node.js github npm


【解决方案1】:

您还可以设置自己的本地 npm 存储库。

【讨论】:

    【解决方案2】:

    我建议一个包含多个包的 repo 是一个坏主意,有几个原因。您应该将包视为它自己的实体:独立构建、测试和部署。话虽如此,每个包都应该存在于自己的仓库中。

    话虽如此,我绝对理解能够为一个“commons”包创建npm install <package-group> 并让它一次性获取您需要的所有包的好处。我建议查看grunt-contrib model 来完成此操作。简而言之,他们有一堆 grunt-contrib- 包(例如 grunt-contrib-coffee),每个包都存在于自己的存储库中。然后他们创建一个单独的存储库来定义父“grunt-contrib”包。这个父包所做的就是指定所有子包的依赖关系。这允许您执行npm install grunt-contrib-coffee(例如)并获得 grunt-contrib-coffee 包;或者您可以通过npm install grunt-contrib 一次性获得他们的整个套件。

    希望这会有所帮助!

    【讨论】:

    • 独立构建、测试和部署与独立签入无关。感谢您的咕噜声,稍后会调查。
    • @Jacob - 你说包是“自己的实体”、“独立构建、测试和部署”,这很好,但你的结论是“每个包都应该存在于自己的仓库中”这不符合逻辑,这种说法是没有空间的。一个存储库(或所谓的单一存储库)具有许多优点,例如:您可以更轻松地在组件之间进行集成测试,您可以更轻松地将它们作为一个整体进行开发。对我来说,这对于共享接口的多个连接包来说是理想的。我认为由于工具限制,添加意识形态是不好的。
    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 2023-03-11
    • 2020-03-24
    • 1970-01-01
    • 2014-02-16
    • 2011-11-01
    • 2019-07-26
    • 1970-01-01
    相关资源
    最近更新 更多