我正在使用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
答案 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
很有帮助。