Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 9038|Atsakyti: 0

Kokią package-lock.json generuoja npm diegimas?

[Kopijuoti nuorodą]
Paskelbta 2017-12-13 13:17:45 | | |
Npm modifikavimo node_modules medyje ar bet kokiame veiksmo package.json package-lock.json bus sugeneruotas automatiškai. Jame aprašomas tikslus medis, kuris sugeneruojamas, kad vėlesni įrenginiai galėtų generuoti tą patį medį, neatsižvelgiant į tarpinius priklausomybės naujinimus.

Šis failas skirtas pateikti į šaltinio kodo saugyklą ir yra prieinamas įvairiems tikslams:

Aprašomas vienas priklausomybių medžio vaizdas, užtikrinantis, kad komandos nariai, diegimai ir nuolatinė integracija užtikrintų, kad būtų įdiegtos tos pačios priklausomybės.

Suteikite vartotojams įrankį, kad jie galėtų "pereiti" į ankstesnę node_modules būseną, neįpareigojant paties katalogo.

Palengvinkite geresnį medžio pokyčių matomumą naudodami skaitomus šaltinio valdymo skirtumus.

Ir optimizuokite diegimo procesą, leisdami npm praleisti pasikartojančią anksčiau įdiegtų paketų metaduomenų skiriamąją gebą.

Pagrindinė package-lock.json detalė yra ta, kad jos negalima išleisti ir bus ignoruojama, jei bus rasta kur nors už aukščiausio lygio paketo ribų. Jis dalijasi formatu su npm-shrinkwrap.json, iš esmės tai yra tas pats failas, bet leidžia publikuoti. Tai nerekomenduojama, nebent įdiegiate CLI įrankį arba kitaip naudojate išleidimo procesą gamybos paketui sukurti.

Jei package-lock.json ir npm-shrinkwrap.json yra šakniniame paketo kataloge, package-lock.json bus visiškai ignoruojami.

Originali nuoroda: https://docs.npmjs.com/files/package-lock.json


Nuo npm 5.x išleidimo 5.6.0 užrakto vaidmuo daug kartų pasikeitė, o dabar daugelis mažų baltų tekstų internete įstrigo ankstesniame dokumento vertime.

Atnaujinau iš npm3.x į npm5, bet pastebėjau, kad reiškinys vykdant "npm i" neatitiko populiariojo mokslo straipsnio internete.

Minima, kad nesvarbu, kaip package.json failas bus modifikuotas, jei npm i bus pakartotinai vykdomas, npm bus atsisiųstas pagal užrakto faile aprašytą versijos informaciją.

Taip pat minima, kad kartodamas npm i, npm ignoruos užrakto informaciją ir atsisiųs atnaujinimo modulį pagal package.json paketo semantinės versijos versijos informaciją (užraktas atrodo nenaudingas).

**Remiantis informacija, nuo npm 5.0 išleidimo npm i taisyklės keitėsi tris kartus. **

1. NPM 5.0.x versija, nesvarbu, kaip keičiasi package.json, NPM I bus atsisiųstas pagal užrakto failą

package-lock.json failas neatnaujintas pakeitus package.json failą · Numeris #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Šis klausimas skundžiasi šia problema, akivaizdu, kad package.json pakeičiau rankiniu būdu, kodėl gi nesuteikus man atnaujinimo paketo! Ir tada tai veda prie 5.1.0 klausimo...

2. Po 5.1.0 versijos npm diegimas nepaisys užrakto failo, kad atsisiųstų naujausią npm

Tada kažkas iškėlė šį klausimą, kodėl paketo užraktas ignoruojamas? · Numeris #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
Skundas galiausiai išsivystė į taisykles po 5.4.2 versijos.

3. Kodėl po 5.4.2 versijos paketo užraktas ignoruojamas? · Numeris #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


Grubiai tariant, jei package.json bus pakeistas, o package.json skiriasi nuo užrakto failo, npm atsisiųs naujausią paketą pagal paketo versijos numerį ir semantinę reikšmę, vykdydamas "npm i", ir atnaujins jį į užrakinimą.

Jei abu yra toje pačioje būsenoje, tada vykdant npm i atsisiųs pagal užraktą, nepriklausomai nuo to, ar faktinė paketo versija yra nauja, ar ne.






Ankstesnis:Teikti statistinius duomenis ir papildyti laiko metodą be duomenų
Kitą:npm pamoka (4): įdiekite npm paketus vietoje
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com