Jaký je rozdíl mezi „instalací npm“ a „npm ci“?


Odpověď 1:

A2A.

Dělají totéž, ale jsou optimalizovány pro různé případy použití.

Vy, jako člověk, byste měli většinu času používat instalaci npm. Umožňuje vám instalovat jednotlivé balíčky, například (například) npm install --save-dev strojopis. To by přidalo strojopis do souborů package.json a package-lock.json. To je žádoucí chování pro spotřebitele balíčků, protože pokud instalujete balíčky ručně, jako je tento, pravděpodobně vyvíjíte nebo instalujete „binární soubory“ na (např.) ~ / .Bin /.

Dalším významným využitím je otevření složky s vaším projektem, čerstvě naklonované z úložiště podle vašeho výběru a spuštění instalace npm k instalaci všech potřebných modulů npm. Opět je to optimalizováno pro člověka a bude se snažit dělat inteligentní rozhodnutí na základě předpokladů, že jste vývojář.

Naproti tomu npm ci, což pravděpodobně znamená „čistou instalaci“, ale pohodlně sdílí iniciály „nepřetržité integrace“, je optimalizováno pro uživatele strojů. Pokud používáte automatizovaný systém nasazení jako je Ansible, kontejnery jako Docker nebo automatizované nástroje jako Travis a Jenkins, měli byste ve svých skriptech pravděpodobně používat npm ci.

Je to proto, že npm ci vymaže moduly v mezipaměti v uzlech_modulů a znovu je nainstaluje od nuly. Pokud modul již neexistuje, nebo pokud máte ve složce node_modules pozdržení, které se nenachází ve vašem balíčku-lock.json nebo npm-shrinkwrap.json, npm ci tuto chybu najde. To je skvělé pro testování verzí, protože vám pomůže vyhnout se problémům „práce na mém počítači“.

Shrnout:

  1. Pro automatizované testování použijte npm ci. Použijte npm instalaci pro všechno ostatní.

Odpověď 2:

Z vyhledávání Google: Stručně řečeno, hlavní rozdíly mezi používáním instalace npm a npm ci jsou: Projekt musí existovat existující balíček-lock.json nebo npm-shrinkwrap.json. Pokud závislosti v zámku balíčku neodpovídají závislostem v balíčku.json, npm ci skončí s chybou, namísto aktualizace zámku balíčku.

To může být podrobnější: Jaký je rozdíl mezi „instalací npm“ a „npm ci“?