gpt4 book ai didi

node.js - 如何识别哪些 npm 包只是对等依赖项?

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:25 26 4
gpt4 key购买 nike

我正在尝试从一些项目的 package.json 文件中删除未使用的包,但遇到了对等依赖项的问题。有一些工具,例如 depcheck,会尝试列出所有“未使用”的包,但它不会区分实际未使用的包和因是对等依赖关系而未使用的包.

是否有一个包,或者一些我不熟悉的 npm 命令,可以让我列出项目中的所有对等依赖项,或者至少允许我输入软件包名称并查看该软件包是否已安装,因为它是另一个软件包的对等依赖项?

对于后代,这里是我的一个项目的依赖项的示例。在这个项目中,我知道 reflect-metadata@nestjs/common 的对等依赖项,但我是在卸载它后才发现的。

"dependencies": {
"@google-cloud/storage": "^3.2.1",
"@google-cloud/vision": "^1.3.0",
"@google/maps": "^0.5.5",
"@nestjs/common": "^6.6.7",
"@nestjs/core": "^6.6.7",
"@nestjs/platform-express": "^6.6.7",
"@slack/webhook": "^5.0.1",
"@typeform/api-client": "^1.5.1",
"algoliasearch": "^3.34.0",
"array-uniq": "^2.1.0",
"basic-auth": "^2.0.1",
"child-process-promise": "^2.2.1",
"class-transformer": "^0.2.3",
"class-validator": "^0.10.0",
"express": "^4.17.1",
"firebase-admin": "^8.5.0",
"firebase-functions": "^3.2.0",
"geoip-lite": "^1.3.8",
"geolib": "^3.0.4",
"glob": "^7.1.4",
"hbs": "^4.0.4",
"hubspot-api": "^2.2.10",
"json2csv": "^4.5.3",
"lodash": "^4.17.15",
"luxon": "^1.17.2",
"node-fetch": "^2.6.0",
"postmark": "^2.2.9",
"promise-settle": "^0.3.0",
"qrcode": "^1.4.1",
"redux": "^4.0.4",
"reflect-metadata": "^0.1.13",
"rxjs": "^6.5.3",
"sales-tax": "^2.0.10",
"sanitize-filename": "^1.6.3",
"sharp": "^0.23.0",
"stripe": "^7.9.0"
},

最佳答案

这是一个很好的问题,不知道为什么它被否决了。不幸的是,我不知道现有的、非常自动化的方法可以做到这一点。

您可以像这样测试单个包:

npm uninstall some-package && npm ls

如果存在任何对等依赖性违规,它们将被打印出来,并且命令将以非零值退出。

因此,您可以将其与提到的其他工具之一的输出结合起来,迭代孤立包的候选者,将它们一一删除,并测试每次更改之间的输出。然后执行 npm uninstall --save 提交未产生错误的内容,或执行 npm install 回滚产生错误的内容。这可以自动化,但我会将其作为练习留给读者。

关于node.js - 如何识别哪些 npm 包只是对等依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58082826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com