【问题标题】:Dependencies specified in package.jsonpackage.json 中指定的依赖项
【发布时间】:2019-02-21 00:00:47
【问题描述】:

假设我有一个客户端应用程序(比如 Ember 应用程序)

我用各种依赖项定义了我的应用程序的 package.json。

    {
    name: "my-app",
    dependencies: {
       "dep1" : "1.0.0"
    },
    devDependencies: {
       "devDep1" : "1.0.0"
    }
    }

我的问题是

  1. 我不必担心“dep1”本身的依赖关系吗?意思是不在我的 package.json,因为它们会在 package.json 中得到处理 “dep1”本身会定义吗?

  2. 在我们自己的应用程序中定义依赖项的任何情况..e.g.假设我们的应用程序使用“jquery”,甚至 dep1 也需要“jquery” ...理想情况下,在这种情况下,我们不会在自己的 package.json 中定义“jquery”...但是任何我们可能不得不喜欢我们的应用程序所需的不同版本的用例...在这种情况下,如何压倒一切的行为工作意味着什么版本被考虑?

  3. 这是否在所有包管理器(如 npm、bower)中都进行了类似处理?

P.S:Ember 引擎环境中的任何其他信息也会很有用(这意味着在使用带有子插件的父应用时等)

【问题讨论】:

  • 1 :节点模块自动具有子依赖项。你不必担心这个。

标签: javascript node.js npm bower


【解决方案1】:
  • 您不必担心任何依赖包。它们是从您需要并安装的包的 package.json 中读取的。
  • 这在所有包管理器中都是一致的。

--- 更新 ---

npm 依赖是嵌套的。这意味着每个包都可以具有相同包的单独版本作为依赖项。在您的情况下,如果一个包需要“jquery”并且您想使用不同版本的“jquery”,您可以根据需要安装任何版本,这将是您唯一可用的版本,而不是任何其他版本您的包的任何依赖项。

【讨论】:

  • 谢谢...刚刚更新了我的问题...您能否提供关于要点 2(版本)的输入
  • 所以 npm 会解决它...但是 bower 是否也使用嵌套依赖项?我的猜测是它具有与 npm 不同的扁平依赖结构吗?这是真的吗?
  • Bower 专为前端开发而创建,并为此进行了优化。它使用扁平的依赖树,每个包只需要一个版本,减少了页面负载。它主要针对最小的资源负载。
【解决方案2】:

package.jsonnpm 使用nested-dependencies,这意味着依赖可以对子依赖有自己的依赖等等。 npm 将自行解决这些依赖关系。 这允许不同的模块具有相同依赖项的不同版本。

【讨论】:

  • 所以 npm 会解决它...但是 bower 是否也使用嵌套依赖项?我的猜测是它具有与 npm 不同的扁平依赖结构吗?这是真的吗?
  • bower 使用平面依赖
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 2014-06-02
相关资源
最近更新 更多