Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 节点包管理器(NPM)似乎产生了重复的包大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在安装一些节点包,我注意到的是NPM创建了一堆重复项.

例如,我首先安装了mongoose,它自然地安装了一堆依赖项.然后我安装了mongodb软件包,它也带有bson作为依赖项.由于重叠依赖,我有以下异常:

Mongodb存在于以下目录中:

/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/

另外,bson,mongodb的依赖关系存在于这两个方面:

/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/

我意识到这些只是千字节的文件,但我觉得这可能会产生很多冗余,最终我可能会得到一个非常复杂的树,类似于以下内容

/usr/local/lib/node_modules/[something1]/node_modules/[something2]/node_modules/[something3/.../.../node_modules/[somethingX]/

在这种情况下,给定的[dependency]可能出现在/usr/local/lib / node_modules下的X级别上.

我主要关心的是更新这些模块.我不觉得很难想象同时安装不@R_889_11197@的并发模块.

将所有内容直接放在/usr/local/lib / node_modules /然后交叉引用依赖项会不会更容易

解决方法

问题是当mongoose只被编码为与mongodb的v1一起使用时,你已经编写了你的​​应用程序以使用MongoDB的v2 – 因此,它安装并加载两个版本,所以它都可以工作.我们可以在节点中轻松完成此操作,因为require模块方式不会污染全局命名空间,这与浏览器不同 – 这使得管理和包含正确的依赖关系成为由于全局命名空间污染造成的巨大痛苦.

现在,如果你的package.json和mongoose的package.json允许相同的mongodb版本(你可以指一个特定的版本或范围),那么做一个rm -Rf node_modules; npm install只会安装@L_317_4@mongodb副本,而不是两个.但是如前所述,如果指定了多个版本,则将安装和加载多个版本.

大佬总结

以上是大佬教程为你收集整理的node.js – 节点包管理器(NPM)似乎产生了重复的包全部内容,希望文章能够帮你解决node.js – 节点包管理器(NPM)似乎产生了重复的包所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。