Lor*_*geb 8 node.js npm package.json package-lock.json
有时人们会更改package.json并忘记运行npm i哪个将更新package-lock.json,或者package.json以package-lock.json其他方式不同步。这是一个不在这里讨论/质疑的假设。我正在寻找一种可以帮助检测此类情况的工具。
您知道可以进行健全性检查的 npm 功能或第三方工具吗package-lock.json?例如,它应该解决所有传递依赖项,并检查锁定文件中是否提到了它们,并且其版本在正确的 semver 范围内。npm i它应该告诉您为了更新锁定文件而运行是否有意义,或者是否会为您提供(考虑传递性)npm ci中定义的所有所需的依赖项。package.json
我认为这npm --loglevel verbose install --dry-run将是一个合理的候选者,但它的输出没有提到package-lock.json如果它在没有--dry-run. 当然,一种选择是运行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
Run Code Online (Sandbox Code Playgroud)
我这样做:
npm init --yes
npm i got
npm i foo
// removed foo manually from package json
// added fastify manually to package json
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8527 次 |
| 最近记录: |