Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 9038|Vastaus: 0

Mikä on NPM-asennuksen tuottama package-lock.json?

[Kopioi linkki]
Julkaistu 13.12.2017 13.17.45 | | |
NPM-muokkauksessa node_modules puussa tai minkä tahansa toiminnon package.json luodaan automaattisesti package-lock.json. Se kuvaa tarkan puun, joka tuotetaan, jotta myöhemmät asennukset voivat tuottaa saman puun riippumatta välivaiheen riippuvuuspäivityksistä.

Tämä tiedosto on tarkoitettu toimitettavaksi lähdekoodivarastoon ja se on käytettävissä eri tarkoituksiin:

Kuvaa yhden edustuksen riippuvuuspuusta varmistaakseen, että tiimikaverit, käyttöönotot ja jatkuva integraatio varmistavat, että samat riippuvuudet asennetaan.

Tarjoa käyttäjille työkalu "edetä" aiempaan node_modules-tilaan ilman, että hakemistoa tarvitsee sitoutua.

Mahdollista puumuutosten parempaa näkyvyyttä luettavien lähdekoodinhallintaerojen avulla.

Ja optimoi asennusprosessi sallimalla NPM:n ohittaa aiemmin asennettujen pakettien päällekkäiset metatietojen resoluutiot.

Keskeinen yksityiskohta package-lock.json on, että sitä ei voi julkaista ja se jätetään huomiotta, jos sitä löytyy muualta kuin huippupaketista. Se jakaa muodon npm-shrinkwrap.json:n kanssa, se on käytännössä sama tiedosto mutta sallii julkaisun. Tätä ei suositella, ellei käytössä ole CLI-työkalua tai muuten julkaisuprosessia tuotantopaketin tuottamiseen.

Jos sekä package-lock.json että npm-shrinkwrap.json ovat paketin juurihakemistossa, package-lock.json jätetään kokonaan huomiotta.

Alkuperäinen linkki: https://docs.npmjs.com/files/package-lock.json


npm 5.x:n julkaisun jälkeen 5.6.0-lukon rooli on muuttunut useaan otteeseen, ja nyt monet pienet valkoiset tekstit internetissä ovat jumissa aiemmassa asiakirjakäännöksessä.

Päivitin npm3.x:stä npm5:een, mutta huomasin, että ilmiö 'npm i':n suorittamisessa ei ollut yhdenmukainen internetin populaaritieteellisen artikkelin kanssa.

Mainitaan, että riippumatta siitä, miten package.json tiedostoa muokataan, jos npm i suoritetaan toistuvasti, npm ladataan lukitustiedostossa kuvattujen versiotietojen mukaisesti.

Mainitaan myös, että kun npm i toistuu, npm jättää lukitustiedot huomiotta ja lataa päivitysmoduulin paketin semanttisen version tietojen mukaisesti package.json:ssa (lukko vaikuttaa hyödyttömältä).

**Tietojen mukaan npm i:n säännöt ovat muuttuneet kolme kertaa npm 5.0:n julkaisun jälkeen. **

1. NPM 5.0.x -versio, riippumatta siitä, miten package.json muuttuu, NPM I ladataan lukitustiedoston mukaisesti

package-lock.json tiedostoa ei päivitetä package.json tiedoston vaihdon jälkeen · Numero #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Tämä ongelma valittaa tästä ongelmasta, tietenkin vaihdoin package.json manuaalisesti, mikset antaisi minulle päivityspakettia! Ja sitten se johtaa 5.1.0-ongelmaan...

2. Version 5.1.0 jälkeen npm-asennus ohittaa lukitustiedoston ladatakseen uusimman npm:n

Sitten joku nosti tämän kysymyksen, miksi pakettilukitus jätetään huomiotta? · Numero #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979
Valitus kehittyi lopulta säännöiksi version 5.4.2 jälkeen.

3. Miksi pakettilukitus jätetään huomiotta version 5.4.2 jälkeen? · Numero #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979


Karkeasti ottaen, jos package.json muuttuu ja package.json poikkeaa lukitustiedostosta, npm lataa uusimman paketin versionumeron ja semanttisen merkityksen mukaisesti suorittaessaan 'npm i':tä, ja päivittää sen lukituksi.

Jos molemmat ovat samassa tilassa, npm:n suorittaminen lataan lukituksen mukaisesti, riippumatta siitä, onko varsinainen pakettiversio uusi vai ei.






Edellinen:Raportoi tilastot ja täydennä aikamenetelmää ilman dataa
Seuraava:NPM-opas (4): Asenna NPM-paketit paikallisesti
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com