首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用npm处理nodejs中的本地包依赖

用npm处理nodejs中的本地包依赖
EN

Stack Overflow用户
提问于 2014-12-04 21:50:00
回答 1查看 297关注 0票数 1

我们应该如何处理在其他本地包中依赖的本地包?

为了简单起见,假设我们有以下软件包

  • api -快递应用
  • people -一个用来与人打交道的包
  • data-access -处理数据访问的包

然后依赖关系是

  • api依赖于people
  • people依赖于data-access

目前,我们已经将这些依赖项设置为文件依赖项。

比如api package.json会

代码语言:javascript
复制
"dependencies": {
  "people": "file:../people"
}

这方面的问题是,当我们对一个包进行更新并希望在依赖它的其他包中进行这些更改时,我们就会发现它是一个皮塔。

我们所考虑的选择是:

  • npm安装-但是如果做了更改,这不会覆盖以前安装的包,所以我们必须从node_modules目录中删除旧的包并重新运行npm安装.如果包依赖关系很深的话,这可能会很糟糕。
  • npm链接-我们没有出售的想法,因为它不能生存的版本控制.现在考虑一下,也许我们有某种本地构建脚本,可以为我们运行npm link命令。这样它才能在版本控制中存活下来。那是一份牢骚的工作吗?
  • 咕哝着--我们还没有深入到这个领域,但感觉这是一个很好的方向。我们在谷歌上搜索了一下:https://github.com/ahutchings/grunt-install-dependencies

那么,什么样的选择最适合我们的情况呢?

还有其他我们还没有想到的选择吗?

Ps。我们是一个.NET商店,在节点上做PoC,所以假设我们什么都不知道!

Pps。如果您强烈认为我们设置的项目不正确,并且不应该有更小的单独包,请在评论中让我知道,并链接到有关这个主题的一些阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-04 22:09:26

所以,我同意“很多小包裹”通常是个好主意。如果您还没有,请查看12factor.net。

话虽如此,具体地回答你的问题,我认为你最好的选择是主要考虑你想要如何维持它们。

如果“子组件”都只是应用程序的一部分(例如,数据访问意味着),那么我会将它们保存在相同的文件夹结构中,而不是在package.json中映射它们,而只是将它们放在需要它们的地方。在这种情况下,所有版本都在一起,是同一个git存储库的一部分。

如果您确实希望或需要将它们保存在单独的git存储库中,那么可以使用npm链接,但老实说,我发现在package.json中使用URL语法更有用:

代码语言:javascript
复制
dependencies: {
  "people" : "git://path.to.git:repo@version.number"
}

然后,当您想显式更新依赖项之一时,只需在package.json中插入版本号并再次运行npm install即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27304773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档