gpt4 book ai didi

node.js - 是否有工具可以验证/检查 package.json 和 package-lock.json 是否一致?

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

有时,人们更改 package.json 并忘记运行 npm i,这将更新 package-lock.json,或者 package.jsonpackage-lock.json 不同步。这是一个不在这里讨论/质疑的假设。我正在寻找一种可以帮助检测此类情况的工具。

您知道可以对 package-lock.json 进行健全性检查的 npm 功能或第三方工具吗?例如,它应该解决所有传递依赖项,并检查锁定文件中是否提到了它们,并且其版本在正确的 semver 范围内。它应该告诉您运行 npm i 来更新锁定文件是否有意义,或者 npm ci 是否会为您提供 package.json 中定义的所有所需依赖项(考虑到传递性)。

我认为 npm --loglevel verbose install --dry-run 是一个合理的候选者,但它的输出没有提及如果在没有 --dry-run 的情况下运行它会对 package-lock.json 执行什么操作。当然,一种选择是运行 npm i 然后运行 ​​git diff package-lock.json (或类似的),但这很脏。

最佳答案

npm ls --depth 1 执行以下检查:

例如,这是输出:

+-- UNMET DEPENDENCY fastify@^2.0.0
+-- foo@0.0.7 extraneous
`-- got@10.3.0
+-- @sindresorhus/is@1.2.0
+-- @szmarczak/http-timer@4.0.0
+-- @types/cacheable-request@6.0.1
+-- cacheable-lookup@0.2.2
+-- cacheable-request@7.0.1
+-- decompress-response@5.0.0
+-- duplexer3@0.1.4
+-- get-stream@5.1.0
+-- lowercase-keys@2.0.0
+-- mimic-response@2.0.0
+-- p-cancelable@2.0.0
+-- responselike@2.0.0
+-- to-readable-stream@2.1.0
`-- type-fest@0.9.0

npm ERR! missing: fastify@^2.0.0, required by asd@1.0.0
npm ERR! extraneous: foo@0.0.7

我这样做:

npm init --yes
npm i got
npm i foo
// removed foo manually from package json
// added fastify manually to package json

关于node.js - 是否有工具可以验证/检查 package.json 和 package-lock.json 是否一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59946772/

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