Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 9038|Svare: 0

Hva er package-lock.json generert av npm-installasjon?

[Kopier lenke]
Publisert på 13.12.2017 13:17:45 | | |
For npm-modifikasjon node_modules tre eller enhver handling package.json, vil en package-lock.json automatisk bli generert. Den beskriver det eksakte treet som genereres slik at påfølgende installasjoner kan generere det samme treet, uavhengig av mellomliggende avhengighetsoppdateringer.

Denne filen er ment å sendes inn i kildekodearkivet og er tilgjengelig for ulike formål:

Beskriver en enkelt representasjon av avhengighetstreet for å sikre at teammedlemmer, distribusjoner og kontinuerlig integrasjon sikrer at nøyaktig de samme avhengighetene installeres.

Gi brukerne et verktøy for å «gå videre» til en tidligere node_modules-tilstand uten å måtte committe selve katalogen.

Legge til rette for større synlighet av treendringer gjennom lesbare forskjeller i kildekontroll.

Og optimalisere installasjonsprosessen ved å la npm hoppe over den dupliserte metadataoppløsningen fra tidligere installerte pakker.

En viktig detalj om package-lock.json er at den ikke kan utgis og vil bli ignorert hvis den finnes utenfor topppakken. Den deler formatet med npm-shrinkwrap.json, det er i bunn og grunn samme fil, men tillater publisering. Dette anbefales ikke med mindre du distribuerer et CLI-verktøy eller på annen måte bruker utgivelsesprosessen for å lage en produksjonspakke.

Hvis både package-lock.json og npm-shrinkwrap.json finnes i rotkatalogen til en pakke, vil package-lock.json bli fullstendig ignorert.

Original lenke: https://docs.npmjs.com/files/package-lock.json


Siden lanseringen av npm 5.x har rollen til 5.6.0-låsen endret seg mange ganger, og nå sitter mange små hvite tekster på Internett fast i den forrige dokumentoversettelsen.

Jeg oppdaterte fra npm3.x til npm5, men fant ut at fenomenet når man kjørte 'npm i' ikke var i samsvar med populærvitenskapsartikkelen på Internett.

Det nevnes at uansett hvordan package.json filen endres, hvis npm i kjøres gjentatte ganger, vil npm bli lastet ned i henhold til versjonsinformasjonen beskrevet i låsefilen.

Det nevnes også at når npm i gjentas, ignorerer npm låseinformasjonen og laster ned oppdateringsmodulen i henhold til den semantiske versjonsversjonen av pakken i package.json (lås virker ubrukelig).

**Ifølge informasjonen har reglene for npm i endret seg tre ganger siden lanseringen av npm 5.0. **

1. npm 5.0.x-versjon, uansett hvordan package.json endres, vil npm I bli lastet ned i henhold til låsefilen

package-lock.json fil som ikke oppdateres etter at package.json filen er endret · Utgave #16866 · NPM/NPM-https://github.com/npm/npm/issues/16866
Dette problemet klager på dette problemet, åpenbart endret jeg package.json manuelt, hvorfor gir du meg ikke en oppgraderingspakke! Og så fører det til problemet med 5.1.0...

2. Etter versjon 5.1.0 vil npm-installasjonen ignorere låsefilen for å laste ned den nyeste npm

Så tok noen opp dette spørsmålet: hvorfor blir pakkelås ignorert? · Utgave #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979
Klagen utviklet seg etter hvert til reglene etter versjon 5.4.2.

3. Etter versjon 5.4.2, hvorfor ignoreres pakkelås? · Utgave #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979


Grovt sagt, hvis package.json endres, og package.json er forskjellig fra låsefilen, vil npm laste ned den nyeste pakken i henhold til versjonsnummer og den semantiske betydningen av pakken når 'npm i' kjøres, og oppdatere den til lås.

Hvis begge er i samme tilstand, vil jeg laste ned npm i henhold til Lock, uavhengig av om selve pakkeversjonen er ny eller ikke.






Foregående:Rapporter statistikk og suppler tidsmetoden uten data
Neste:npm-veiledning (4): Installer npm-pakker lokalt
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com