本文介绍: 之前我们讲过,“幽灵依赖” 就是:未在项目package.json中声明的依赖,但在项目中依然可以意外的被正确引用。
npm、yarn、pnpm —— 再谈幽灵依赖
一、什么是幽灵依赖?
之前我们讲过,“幽灵依赖” 就是:未在项目 package.json
中声明的依赖,但在项目中依然可以意外的被正确引用。
原因就是 npm v5
只后,把所有的依赖全部拍平整理到项目的 node_modules
之中,才导致了上面说的这种情况。(yarn
也一样,都存在幽灵依赖)
看之前文章的图片。我们可以看到,在 express
的 package.json
中,他声明的依赖项并不是项目的依赖项,但也被拍平到 node_modules
文件夹中。所以有时候我们可能会不小心引用到这个依赖,开发者会误判,以为是项目自己的依赖,导致某些玄学的报错。
二、pnpm 怎么处理依赖?
归功于最重要的一点,pnpm
是通过自动硬链接 (hard link) 和软链接 (sybolic link) 来实现 npm
模块的管理。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。