【问题标题】:is it ok to have more than one package.json in a project?一个项目中可以有多个 package.json 吗?
【发布时间】:2017-07-24 19:10:57
【问题描述】:

一个项目中可以有多个 package.json 吗?我正在使用 .NET MVC 解决方案,它在根级别有一个 package.json。我需要将 Jasmine/Karma 集成到解决方案中,这是我第一次进行这种类型的集成。我在网上找到了 Jasmine/Karma 的示例项目,我能够在本地运行它。这个项目有它自己的 package.json。

将 Jasmine/Karma 示例项目的 package.json 文件与解决方案的根级别的 package.json 分开维护似乎很有用,以提供更大的灵活性并允许相同的属性根据上下文使用不同的方法。

这是有效的还是通常被认为是好的做法?还是我需要弄清楚如何将示例项目中 package.json 的内容合并到 .NET MVC 解决方案的根级别的 package.json 中?

【问题讨论】:

    标签: javascript .net visual-studio npm jasmine


    【解决方案1】:

    就保持简单而言,只需要维护一个 package.json 文件会更容易,但在一个 repo 中拥有多个 package.json 文件并没有本质上的错误。有些公司确实使用单存储库,因此拥有多个 package.json 文件是完全有意义的。

    多个package.json 文件为您提供了很大的灵活性来运行不同/不兼容版本的依赖项。作为一个实际示例,在我从事的一个项目中,我们有 2 个package.json 文件,一个用于主应用程序代码,另一个用于我们的 BDD 测试。我们使用 chimp 进行 BDD 测试,在最新的节点版本上运行它时遇到问题,而我们不想仅仅因为这个而阻止应用程序的其余部分升级。我们还发现,单个package.json 文件在最初合并时变得非常混乱。

    【讨论】:

      【解决方案2】:

      我会说拥有多个 package.json 通常是不好的做法。我只希望 npm install 一次,并且必须处理两组依赖项管理可能会导致问题。

      【讨论】:

      • 现在看到有多个 package.json 的项目很常见,特别是如果它们位于 monorepo 中,例如Express 和 Angular(使用 SSR)或 React。这是一个典型的 Heroku 设置,包含三个 package.json 文件 medium.com/inato/…
      • 那是 2 年前的事了……现在我想说在你的项目中有很多 package.json 文件是一种很好的做法。我认为 monorepo 方法效果很好 :-) 您可以使用 lerna 管理单个存储库中的多个包。
      猜你喜欢
      • 2021-01-13
      • 1970-01-01
      • 2018-11-01
      • 2012-07-26
      • 1970-01-01
      • 2010-12-10
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多