Brałam ostatnio udział w warsztatach z Node.js, na których poznałam przydatną komendę npm audit. Pozwala ona na sprawdzenie pakietów wykorzystywanych w projekcie pod względem nieprawidłowości. Ale zacznijmy od początku.
Error: Cannot audit a project without a lockfile
Na sam początek próbowałam uruchomić komendę w pewnym starym projekcie. Okazało się, że niestety nie działa:

Przyczyna okazała się prosta – mój projekt nie zawierał pliku package-lock.json.
Error: Object.entries is not a function
Zmieniłam więc projekt na taki, który zawierał plik package-lock.json, ale niestety znowu pojawił się błąd:

Na szczęście jest to znany i zgłoszony błąd. Wystarczy zaktualizować npm komendą:
npm i npm
Ja miałam wersję 6.0.0, a po update – 6.9.0.
npm audit
Wzięłam na warsztat stary projekt, w którym ostatnie zmiany robiłam w lutym 2018 (czyli od roku nie był ruszany). Oto, co zwróciła komenda:t

Trochę tego się znalazło. Powyżej podsumowania wypisane zostały również nazwy pakietów i stopień zagrożenia, np.:

Były też propozycje rozwiązania problemów:

npm audit fix
Okazuje się, że naprawa vulnerabilities jest prosta. Wystarczy powyższa komenda:

Jest i działa.
Podsumowanie
Powyższy post pokazuje najprostsze zastosowanie npm audit. Można dodatkowo użyć parametrów, żeby zrobić dry-run, albo wygenerować podsumowanie w formacie json. Ale o tym możecie przeczytać w dokumentacji.
Podoba Ci się to, co tworzę? Chcesz dostawać informacje o:
– wydarzeniach, które organizuję lub wspieram (np. konferencje, meetupy, webinary)
– inicjatywach, które organizuję lub wspieram (np. GeekWeekWro, DevAdventCalendar)
– moich prelekcjach, kursach i szkoleniach
– wyróżnionych artykułach z mojego bloga
0% SPAMu, 100% informacji! Krótko i na temat.
Warto dodać, że audyt paczek wykonuje się podczas instalacji zależności za pomocą
npm install
. Kiedy używamy CI nie ma sensu korzystania z audytu, dlatego też istnieje polecenienpm ci
, które instaluje zależności, ale nie uruchamia audytu, dzięki czemu instalacja zależności przebiega szybciej.PS. Mi się czasem zdarza uruchomić nawet
npm audit fix --force
🙂PolubieniePolubione przez 1 osoba
Dzięki za uzupełnienie 😉
PolubieniePolubienie