Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 9038|Svar: 0

Vilken package-lock.json genereras av npm-installationen?

[Kopiera länk]
Publicerad på 2017-12-13 13:17:45 | | |
För npm-modifiering node_modules träd eller någon åtgärd package.json genereras en package-lock.json automatiskt. Den beskriver det exakta träd som genereras så att efterföljande installationer kan generera samma träd, oavsett mellanliggande beroendeuppdateringar.

Denna fil är avsedd att skickas till källkodsarkivet och är tillgänglig för olika ändamål:

Beskriver en enda representation av beroendeträdet för att garantera att teamkamrater, distributioner och kontinuerlig integration säkerställer att exakt samma beroenden installeras.

Ge användare ett verktyg för att "avancera" till ett tidigare node_modules tillstånd utan att behöva committa katalogen själv.

Underlätta större insyn i trädändringar genom läsbara skillnader i källkontroll.

Och optimera installationsprocessen genom att låta npm hoppa över den dubbla metadata-lösningen från tidigare installerade paket.

En viktig detalj med package-lock.json är att den inte kan släppas och kommer att ignoreras om den finns utanför topppaketet. Den delar formatet med npm-shrinkwrap.json, det är i princip samma fil men tillåter publicering. Detta rekommenderas inte om du inte distribuerar ett CLI-verktyg eller på annat sätt använder releaseprocessen för att skapa ett produktionspaket.

Om både package-lock.json och npm-shrinkwrap.json finns i rotkatalogen i ett paket kommer package-lock.json att ignoreras helt.

Originallänk: https://docs.npmjs.com/files/package-lock.json


Sedan lanseringen av npm 5.x har rollen för 5.6.0-låset ändrats många gånger, och nu har många små vita texter på Internet fastnat i den tidigare dokumentöversättningen.

Jag uppdaterade från npm3.x till npm5, men upptäckte att fenomenet när man körde 'npm i' inte stämde överens med den populärvetenskapliga artikeln på internet.

Det nämns att oavsett hur package.json fil ändras, om npm i upprepade gånger körs, kommer npm att laddas ner enligt versionsinformationen som beskrivs i låsfilen.

Det nämns också att när npm i upprepas, ignorerar npm låsinformationen och laddar ner uppdateringsmodulen enligt den semantiska versionsversionen av paketet i package.json (låset verkar vara värdelöst).

**Enligt informationen har reglerna för npm i ändrats tre gånger sedan npm 5.0 släpptes. **

1. npm 5.0.x-version, oavsett hur package.json ändras, kommer npm i att laddas ner enligt låsfilen

package-lock.json fil uppdateras inte efter att package.json fil ändrats · Nummer #16866 · NPM/NPM-https://github.com/npm/npm/issues/16866
Det här problemet klagar på det här problemet, uppenbarligen ändrade jag package.json manuellt, varför ger du mig inte ett uppgraderingspaket! Och sedan leder det till frågan om 5.1.0...

2. Efter version 5.1.0 kommer npm-installationen att ignorera låsfilen för att ladda ner den senaste npm:n

Då tog någon upp frågan varför paketlås ignoreras? · Nummer #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979
Klagomålet utvecklades så småningom till reglerna efter version 5.4.2.

3. Efter version 5.4.2, varför ignoreras paketlås? · Nummer #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979


Grovt sett, om package.json ändras och package.json skiljer sig från låsfilen, kommer npm att ladda ner det senaste paketet enligt versionsnummer och den semantiska betydelsen av paketet när 'npm i' körs, och uppdatera det till lås.

Om båda är i samma tillstånd kommer jag att ladda ner npm enligt lås, oavsett om den faktiska paketversionen är ny eller inte.






Föregående:Rapportera statistik och komplettera tidsmetoden utan data
Nästa:npm-handledning (4): Installera npm-paket lokalt
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com