Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 9038|Răspunde: 0

Care este package-lock.json generat de instalarea npm?

[Copiază linkul]
Postat pe 13.12.2017 13:17:45 | | |
Pentru modificarea npm node_modules arbore sau orice package.json de acțiune, un package-lock.json va fi generat automat. Descrie exact arborele care este generat, astfel încât instalările ulterioare să poată genera același arbore, indiferent de actualizările intermediare ale dependențelor.

Acest fișier este destinat să fie trimis în depozitul de cod sursă și este disponibil pentru diverse scopuri:

Descrie o singură reprezentare a arborelui de dependențe pentru a garanta că colegii, implementările și integrarea continuă asigură că aceleași dependențe sunt instalate.

Oferă utilizatorilor un instrument pentru a "avansa" către o stare node_modules anterioară fără a fi nevoie să dea commit direct pentru director.

Facilitarea unei vizibilități mai mari a modificărilor arborelui prin diferențe lizibile în controlul versiunii.

Și optimizează procesul de instalare permițând NPM să sară peste rezoluția duplicată de metadate a pachetelor instalate anterior.

Un detaliu cheie despre package-lock.json este că nu poate fi lansat și va fi ignorat dacă este găsit în afara pachetului de top. Împarte formatul cu npm-shrinkwrap.json, este practic același fișier, dar permite publicarea. Acest lucru nu este recomandat decât dacă implementezi un instrument CLI sau folosești procesul de lansare pentru a produce un pachet de producție.

Dacă atât package-lock.json, cât și npm-shrinkwrap.json există în directorul rădăcină al unui pachet, package-lock.json vor fi ignorate complet.

Link original: https://docs.npmjs.com/files/package-lock.json


De la lansarea npm 5.x, rolul blocării 5.6.0 s-a schimbat de multe ori, iar acum multe texte albe mici de pe Internet sunt blocate în traducerea anterioară a documentelor.

Am actualizat de la npm3.x la npm5, dar am constatat că fenomenul la executarea 'npm i' nu era în concordanță cu articolul de știință populară de pe Internet.

Se menționează că, indiferent cât de mult este modificat package.json fișier, dacă npm i este executat în mod repetat, npm va fi descărcat conform informației de versiune descrise în fișierul de blocare.

Se menționează, de asemenea, că atunci când se repetă npm i, npm va ignora informațiile despre blocare și va descărca modulul de actualizare conform informațiilor despre versiunea semantică a pachetului din package.json (blocarea pare inutilă).

**Conform informațiilor, regulile NPM I s-au schimbat de trei ori de la lansarea NPM 5.0. **

1. Versiunea NPM 5.0.X, indiferent cum se schimbă package.json, NPM I va fi descărcat conform fișierului de blocare

package-lock.json fișier neactualizat după ce fișierul package.json este modificat · Numărul #16866 · Npm/NPM https://github.com/npm/npm/issues/16866
Această problemă se plângă de această problemă, evident că am schimbat package.json manual, de ce nu-mi dai un pachet de upgrade! Și apoi ajunge la problema 5.1.0...

2. După versiunea 5.1.0, instalarea npm va ignora fișierul de blocare pentru a descărca cel mai recent npm

Atunci cineva a ridicat această problemă: de ce este ignorat blocarea pachetelor? · Numărul #17979 · Npm/NPM https://github.com/npm/npm/issues/17979
Plângerea a evoluat în cele din urmă în reguli după versiunea 5.4.2.

3. După versiunea 5.4.2, de ce se ignoră blocarea pachetului? · Numărul #17979 · Npm/NPM https://github.com/npm/npm/issues/17979


Pe scurt, dacă package.json este modificat și package.json este diferit de fișierul de blocare, npm va descărca cel mai recent pachet conform numărului de versiune și semnificației semantice al pachetului când rulează 'npm i' și îl va actualiza la blocare.

Dacă ambele sunt în aceeași stare, atunci executarea npm i va descărca conform blocării, indiferent dacă versiunea efectivă a pachetului este nouă sau nu.






Precedent:Raportează statistici și completează metoda timpului fără date
Următor:Tutorial npm (4): Instalează pachetele npm local
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com