在package.json中指定的依赖项

时间:2018-09-17 05:40:48

标签: javascript node.js npm bower

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

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

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

我的问题是

  1. 我不必担心“ dep1”本身具有的依赖性吗?意思不在我中定义那些子依赖项 package.json,因为它们会在package.json中得到照顾 “ dep1”本身会定义吗?

  2. 在任何情况下,我们都会在自己的应用中定义依赖项。说我们的应用使用“ jquery”,而即使dep1也需要“ jquery” ...理想情况下,在这种情况下,我们不会在自己的package.json中定义“ jquery” ...但是在任何用例中,我们可能不得不喜欢应用程序所需的不同版本...在这种情况下,覆盖行为的工作原理意味着要考虑哪个版本?

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

P.S:Ember引擎环境中的任何其他信息也将很有用(这意味着将父应用程序与子插件一起使用等)

2 个答案:

答案 0 :(得分:3)

  • 您不必担心任何依赖软件包。从您需要并安装的包的package.json中读取它们。
  • 这在所有程序包管理器中都是一致的。

---更新---

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

答案 1 :(得分:0)

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