JointJS依赖性管理问题

时间:2019-05-24 19:47:56

标签: node.js npm dependency-management

我正在使用JointJS作为NPM软件包,并且工作正常。我的问题是管理其依赖项。现在,它在自己的node_modules文件夹中创建了自己的jquery文件夹。它使用的是jQuery,但我在顶层node_modules文件夹中的JointJS旁边有一个jQuery作为“顶层”文件夹。 如何使JointJS使用顶级jQuery,以便可以删除JointJS内的jquery文件夹?

ProjectFolder
    node_modules
        jointjs
            node_modules
                jquery (want to delete)
        jquery

1 个答案:

答案 0 :(得分:1)

简短版本是在npm install

完成后运行npm dedupe

这将扫描您的依赖关系树,并将嵌套的依赖关系提升/指向位于您的依赖关系树顶层的依赖关系它可以

我说“它可以做到”,因为要做到这一点将要求您在您的 package.json中定义的jQuery版本必须符合JointJS {{ 1}}。例如,JointJS requires jQuery 3.3.1 的v2.2.1。如果您的jQuery版本完全偏离了 ,则package.json将不会删除嵌套的jQuery依赖项。

还请记住,您的应用程序中包含的其他软件包可能具有自己的jQuery版本,这些版本也可能与jQuery的顶层交互。

在某些情况下,JointJS中的jQuery将保持嵌套,因为它必须嵌套以实现应用程序的所有依赖关系和约束。

blog post对帮助我了解npm的依赖项解析如何工作以及为什么需要npm dedupe很有帮助。