如何支持生活在一个git仓库中的多个私有npm包?

dje*_*lin 14 git github node.js npm

npm非常擅长支持软件包发布到全局/中央存储npm库,这对私有应用程序代码不起作用. npm还支持添加git repo作为依赖项,这使您可以拥有私有依赖项.

问题是,正如我所理解的那样,最好的做法是,我的npm包装往往非常紧凑和小,而我的git repos往往更大,并且将包括几个npm包.在指向github URL时,我不知道如何获得这种粒度.怎么解决这个?

UPDATE

我接受了"不要这样做,坚持不懈"的答案.我同意这个建议,但是YMMV.

小智 12

我建议一个包含多个包的仓库从一开始就是一个坏主意,原因有几个.您应该将包视为自己的实体:独立构建,测试和部署.所有这一切,每个包都应该存在于自己的回购中.

话虽这么说,我完全明白能够做npm install <package-group>一个"公共"包的好处,让它一次性抓住你需要的所有包.我建议看看grunt-contrib模型来完成这个.简而言之,他们有一堆grunt-contrib-packages(例如grunt-contrib-coffee),每个人都住在自己的存储库中.然后,他们创建一个单独的存储库,用于定义父"grunt-contrib"包.所有这个父包都指定了对所有子包的依赖关系.这允许你做npm install grunt-contrib-coffee(例如)并获得grunt-contrib-coffee包; 或者你可以npm install grunt-contrib一次性完成整个套件.

希望这可以帮助!

  • 独立构建,测试和部署与独立登记无关.感谢grunt rec,将在某个方面进行调查. (2认同)