Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 9038|Odpověď: 0

Jaký je package-lock.json generovaný instalací npm?

[Kopírovat odkaz]
Zveřejněno 13.12.2017 13:17:45 | | |
Pro NPM úpravu node_modules stromu nebo jakékoliv akční package.json bude package-lock.json automaticky generován. Popisuje přesný strom, který je generován, aby následující instalace mohly generovat stejný strom bez ohledu na meziaktualizace závislostí.

Tento soubor je určen k odeslání do úložiště zdrojového kódu a je dostupný pro různé účely:

Popisuje jedinou reprezentaci stromu závislostí, která zajišťuje, že spoluhráči, nasazení a kontinuální integrace zajistí, že jsou nainstalovány přesně stejné závislosti.

Poskytnout uživatelům nástroj pro "postup" do předchozího node_modules stavu bez nutnosti commitovat samotný adresář.

Usnadnit lepší přehled o změnách stromu díky čitelným rozdílům ve správě zdrojových kódů.

A optimalizovat instalační proces tím, že NPM umožní přeskočit duplicitní rozlišení metadat dříve nainstalovaných balíčků.

Klíčovým detailem package-lock.json je, že nemůže být vydán a pokud se objeví mimo špičkový balíček, bude ignorován. Sdílí formát s npm-shrinkwrap.json, je to v podstatě stejný soubor, ale umožňuje publikování. To se nedoporučuje, pokud nenasadíte nástroj CLI nebo jinak nevyužijete proces vydání k vytvoření produkčního balíčku.

Pokud v kořenovém adresáři balíčku existují package-lock.json i npm-shrinkwrap.json, bude package-lock.json zcela ignorován.

Původní odkaz: https://docs.npmjs.com/files/package-lock.json


Od vydání npm 5.x se role zámku 5.6.0 mnohokrát změnila a nyní je mnoho malých bílých textů na internetu zaseknutých v předchozím překladu dokumentů.

Aktualizoval jsem z npm3.x na npm5, ale zjistil jsem, že jev při provádění 'npm i' není v souladu s populárně-vědeckým článkem na internetu.

Je zmíněno, že bez ohledu na to, jak package.json soubor upravíte, pokud je npm i opakovaně vykonáváno, NPM bude staženo podle informací o verzi popsaných v souboru.

Také se uvádí, že při opakování npm i npm ignoruje informace o zámku a stáhne aktualizační modul podle informací o verzi balíčku v package.json (zámek se zdá být k ničemu).

**Podle informací se pravidla npm i od vydání npm 5.0 změnila třikrát. **

1. Verze npm 5.0.x, bez ohledu na to, jak se package.json změní, NPM I bude stažen podle zámkového souboru

package-lock.json soubor není aktualizován po změně package.json souboru · Číslo #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Tento problém si stěžuje, samozřejmě jsem package.json změnil ručně, proč mi nedáte upgrade balíček! A pak to vede k vydání 5.1.0...

2. Po verzi 5.1.0 instalace npm ignoruje zámek soubor, aby stáhla nejnovější npm

Pak někdo nastolil tento problém, proč je pack-lock ignorován? · Číslo #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
Stížnost se nakonec vyvinula do pravidel po verzi 5.4.2.

3. Proč je po verzi 5.4.2 package-lock ignorován? · Číslo #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


Zhruba řečeno, pokud je package.json změněn a package.json se liší od zámkového souboru, npm stáhne nejnovější balíček podle čísla verze a sémantického významu balíčku při spuštění 'npm i' a aktualizuje ho na lock.

Pokud jsou oba ve stejném stavu, pak spuštění npm stáhne podle zámku, bez ohledu na to, jestli je skutečná verze balíčku nová nebo ne.






Předchozí:Vykazujte statistiky a doplňujte metodu času bez dat
Další:npm tutoriál (4): Instalace npm balíčků lokálně
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com