git - 如何支持一个 git repo 中的多个私有(private) npm 包?

标签 git node.js github npm

npm 非常擅长支持将包发布到全局/中央 npm 存储库,这对于私有(private)应用程序代码来说效果不佳。 npm 还支持将 git repo 添加为依赖项,这样您就可以拥有私有(private)依赖项。

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

更新

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

最佳答案

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

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

希望这会有所帮助!

关于git - 如何支持一个 git repo 中的多个私有(private) npm 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16305571/

相关文章:

Javascript Node.js 和 Socket.IO 广播服务器

github - 是否有任何选项可以在 Github 上查看公共(public)存储库的提交作者姓名和电子邮件,而无需克隆存储库?

git - 卡在 "POST git-receive-pack (chunked)"

当标签已经存在于远程时​​,Git 强制推送标签

node.js - 在集群架构中横向扩展 RAM?

javascript - promise 不返回对象

git - 获取哪些提交被强制推送的历史记录

python - 创建 github 存储库

没有 SSH 的 Git 和 Bitbucket

git - 使用 WinSCP NuGet 包(和 git),我可以将 WinSCP.exe 添加到我的 git 忽略中吗?