我们应该如何处理在其他本地包中依赖的本地包?
为了简单起见,假设我们有以下软件包
api -快递应用people -一个用来与人打交道的包data-access -处理数据访问的包然后依赖关系是
api依赖于peoplepeople依赖于data-access目前,我们已经将这些依赖项设置为文件依赖项。
比如api package.json会
"dependencies": {
"people": "file:../people"
}这方面的问题是,当我们对一个包进行更新并希望在依赖它的其他包中进行这些更改时,我们就会发现它是一个皮塔。
我们所考虑的选择是:
npm link命令。这样它才能在版本控制中存活下来。那是一份牢骚的工作吗?那么,什么样的选择最适合我们的情况呢?
还有其他我们还没有想到的选择吗?
Ps。我们是一个.NET商店,在节点上做PoC,所以假设我们什么都不知道!
Pps。如果您强烈认为我们设置的项目不正确,并且不应该有更小的单独包,请在评论中让我知道,并链接到有关这个主题的一些阅读。
发布于 2014-12-04 22:09:26
所以,我同意“很多小包裹”通常是个好主意。如果您还没有,请查看12factor.net。
话虽如此,具体地回答你的问题,我认为你最好的选择是主要考虑你想要如何维持它们。
如果“子组件”都只是应用程序的一部分(例如,数据访问意味着),那么我会将它们保存在相同的文件夹结构中,而不是在package.json中映射它们,而只是将它们放在需要它们的地方。在这种情况下,所有版本都在一起,是同一个git存储库的一部分。
如果您确实希望或需要将它们保存在单独的git存储库中,那么可以使用npm链接,但老实说,我发现在package.json中使用URL语法更有用:
dependencies: {
"people" : "git://path.to.git:repo@version.number"
}然后,当您想显式更新依赖项之一时,只需在package.json中插入版本号并再次运行npm install即可。
https://stackoverflow.com/questions/27304773
复制相似问题