Есть ли инструмент для проверки / проверки этого пакета. json и package-lock. json соответствуют? - PullRequest
1 голос
/ 28 января 2020

Иногда люди меняют package.json и забывают запустить npm i, что обновит package-lock.json, или package.json и package-lock.json в противном случае не синхронизированы c. Это предположение не подлежит обсуждению / сомнению здесь. Я ищу инструмент, который помогает обнаруживать такие случаи.

Вам известна функция npm или сторонний инструмент, который может проверять исправность package-lock.json? Например, он должен разрешить все транзитивные зависимости и убедиться, что все они упоминаются в файле блокировки с версией в правильном диапазоне семиверов. Должно быть указано, имеет ли смысл запускать npm i для обновления вашего файла блокировки, или же npm ci получит вам все необходимые зависимости, как определено в package.json (учитывая транзитивность).

Я думал, что npm --loglevel verbose install --dry-run будет разумным кандидатом, но в его выводе не указано, что он будет делать с package-lock.json в случае, если он будет работать без --dry-run. Конечно, один из вариантов - запустить npm i, а затем git diff package-lock.json (или аналогичный), но это грязно.

1 Ответ

0 голосов
/ 28 января 2020

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
...