假设我有一个客户端应用程序(例如Ember应用程序)
我使用各种依赖项定义应用程序的package.json。
{
name: "my-app",
dependencies: {
"dep1" : "1.0.0"
},
devDependencies: {
"devDep1" : "1.0.0"
}
}
我的问题是
我不必担心“ dep1”本身具有的依赖性吗?意思不在我中定义那些子依赖项 package.json,因为它们会在package.json中得到照顾 “ dep1”本身会定义吗?
在任何情况下,我们都会在自己的应用中定义依赖项。说我们的应用使用“ jquery”,而即使dep1也需要“ jquery” ...理想情况下,在这种情况下,我们不会在自己的package.json中定义“ jquery” ...但是在任何用例中,我们可能不得不喜欢应用程序所需的不同版本...在这种情况下,覆盖行为的工作原理意味着要考虑哪个版本?
在所有程序包管理器(如npm,bower)中是否都进行了类似的处理?
P.S:Ember引擎环境中的任何其他信息也将很有用(这意味着将父应用程序与子插件一起使用等)
答案 0 :(得分:3)
---更新---
npm依赖项是嵌套的。这意味着每个软件包都可以将同一软件包的单独版本作为依赖项。在您的情况下,如果软件包需要“ jquery”,而您想使用其他版本的“ jquery”,则可以根据需要安装任何版本,这将是唯一可用的版本,而不是您需要的任何其他版本。您的软件包的任何依赖项。
答案 1 :(得分:0)
package.json
或npm
使用nested-dependencies,这意味着依赖项可以对子依赖项具有自己的依赖项,依此类推。 npm
将自行解决这些依赖性。
这允许不同的模块具有相同依赖性的不同版本。