W poprzednim wpisie opisałem komendę npm install.
Teraz opiszę co robi komenda npm ci oraz jakie są różnice między nimi.
Skrót CI oznacza Continues Integration i stąd npm ci służy do instalacji zależności w środowiskach testowych, continues integration i deploymentu lub w każdej sytuacji gdzie potrzebujemy czystej, nowej instalacji wszystkich paczek.
Komenda npm ci jest podobna do npm install bo ma za zadanie instalować wszystkie zależności w naszym projekcie.
Jednak zasadniczą różnicą npm ci jest to, że zainstaluje zależności z pliku package-lock.json a nie package.json tak jak robi to npm install.
Dzięki temu mamy pewność, że zainstalowane zależności na innych środowiskach będą miały dokładnie taką samą wersję.
Krótko mówiąc, różnice między npm ci a npm install:
- w projekcie musi istnieć plik
package-lock.json, - jeżeli zależności w pliku
package.jsonróżnią się od tych wpackage-lock.json,npm cizakończy proces z błędem i nie zaktualizuje plikupackage-lock.json, - nie można instalować nowych zależności za pomocą
npm ci, - jeżeli folder
node_modulesistnieje, zostanie on usunięty przed rozpoczęciem instalacji zależności, - plik
package-lock.jsonlubpackage.jsonnigdy nie zostanie zaktualizowany, npm cijest szybszy odnpm installgdy istnieje w projekcie plikpackage-lock.jsoni brakuje folderunode_modules.