У меня есть проект React Native (0.61.4), который использует yarn
в качестве менеджера пакетов.
Когда я запускаю yarn audit
, сообщается об огромном количестве уязвимостей:
18202 vulnerabilities found - Packages audited: 958823
Severity: 18202 High
✨ Done in 14.34s.
Большинство из них находятся на некоторых очень глубоких путях зависимости. Например:
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ high │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.17.12 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ react-native │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ react-native > @react-native-community/cli > │
│ │ metro-react-native-babel-transformer > @babel/core > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://www.npmjs.com/advisories/1065 │
└───────────────┴──────────────────────────────────────────────────────────────┘
Когда я запускаю npm audit
, он сначала сообщает:
Neither npm-shrinkwrap.json nor package-lock.json found: Cannot audit a project without a lockfile
Итак, я запускаю:
npm i --package-lock-only
A package-lock.json
fileгенерируется. При проверке этот файл кажется правильным.
Когда я сейчас запускаю npm audit
, получаются следующие результаты:
=== npm audit security report ===
found 0 vulnerabilities
Я не понимаю расхождений между этими двумя менеджерами пакетов. Почему npm
сообщает 0 ошибок, а yarn
18.202?