Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 9170|Odgovoriti: 0

Kakšen je package-lock.json, ki ga ustvari npm install?

[Kopiraj povezavo]
Objavljeno na 13. 12. 2017 13:17:45 | | |
Za npm spremembo node_modules drevesa ali kateregakoli akcijskega package.json se samodejno generira package-lock.json. Opisuje natančno drevo, ki se generira, da lahko naslednje namestitve ustvarijo isto drevo, ne glede na vmesne posodobitve odvisnosti.

Ta datoteka je namenjena oddaji v repozitorij izvorne kode in je na voljo za različne namene:

Opisuje enotno predstavitev drevesa odvisnosti, ki zagotavlja, da soigralci, namestitve in neprekinjena integracija zagotovijo namestitev popolnoma enakih odvisnosti.

Uporabnikom omogočiti orodje za "napredovanje" v prejšnje node_modules stanje brez potrebe po potrditvi same mape.

Omogočite večjo preglednost sprememb dreves z berljivimi razlikami v nadzoru izvorne kode.

In optimizirati postopek namestitve tako, da NPM preskoči podvojeno ločljivost metapodatkov iz prej nameščenih paketov.

Ključna podrobnost package-lock.json je, da ga ni mogoče izdati in bo prezrt, če ga najdemo kjerkoli zunaj vrhunskega paketa. Format si deli z npm-shrinkwrap.json, v bistvu je ista datoteka, a omogoča objavo. To ni priporočljivo, razen če namestite CLI orodje ali drugače uporabite postopek izdaje za izdelavo produkcijskega paketa.

Če v korenskem imeniku paketa obstajata tako package-lock.json kot npm-shrinkwrap.json, bo package-lock.json popolnoma prezrto.

Izvirna povezava: https://docs.npmjs.com/files/package-lock.json


Od izdaje npm 5.x se je vloga zaklepa 5.6.0 večkrat spremenila, zdaj pa je veliko majhnih belih besedil na internetu ujetih v prejšnji prevod dokumentov.

Posodobil sem z npm3.x na npm5, vendar sem ugotovil, da pojav pri izvajanju 'npm i' ni bil skladen s popularnoznanstvenim člankom na internetu.

Omenjeno je, da ne glede na to, kako package.json datoteka spremenjena, če se npm i večkrat izvaja, se npm prenese glede na informacije o različici, opisane v datoteki za zaklepanje.

Omenjeno je tudi, da ob ponavljanju npm i npm ignorira informacije o zaklepu in prenese modul posodobitve glede na semantične verzijske informacije paketa v package.json (zaklepanje se zdi neuporabno).

**Po podatkih so se pravila npm i od izida npm 5.0 spremenila trikrat. **

1. npm 5.0.x različica, ne glede na spremembe package.json bo npm i prenesen glede na zaklepno datoteko

package-lock.json datoteka ni posodobljena po package.json spremembi · Številka #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Ta težava se pritožuje zaradi te težave, očitno sem package.json zamenjal ročno, zakaj mi ne daš paketa za nadgradnjo! In potem vodi do vprašanja 5.1.0...

2. Po različici 5.1.0 bo namestitev npm ignorirala zaklepno datoteko in prenesla najnovejši npm

Potem je nekdo izpostavil to vprašanje, zakaj se paketno zaklepanje ignorira? · Številka #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
Pritožba se je sčasoma razvila v pravila po različici 5.4.2.

3. Po različici 5.4.2, zakaj se zaklepanje paketa ignorira? · Številka #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


Približno povedano, če je package.json spremenjen in je package.json drugačen od datoteke zaklepa, bo npm prenesel najnovejši paket glede na številko različice in semantični pomen paketa ob izvajanju 'npm i' ter ga posodobil na zaklepanje.

Če sta oba v istem stanju, bom pri izvajanju npm prenesel v skladu z zaklepom, ne glede na to, ali je dejanska različica paketa nova ali ne.






Prejšnji:Poročajte o statistikah in dopolnite metodo časa brez podatkov
Naslednji:npm vodič (4): Namestite npm pakete lokalno
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com