Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 9038|Svar: 0

Hvad er den package-lock.json, der genereres af npm-installationen?

[Kopier link]
Opslået på 13/12/2017 13.17.45 | | |
For npm-modifikation node_modules træ eller enhver handling package.json vil en package-lock.json automatisk blive genereret. Den beskriver det præcise træ, der genereres, så efterfølgende installationer kan generere det samme træ, uanset mellemliggende afhængighedsopdateringer.

Denne fil er beregnet til at blive indsendt til kildekode-repositoriet og er tilgængelig til forskellige formål:

Beskriver en enkelt repræsentation af afhængighedstræet for at sikre, at holdkammerater, implementeringer og kontinuerlig integration sikrer, at de samme afhængigheder installeres.

Giv brugerne et værktøj til at "rykke frem" til en tidligere node_modules-tilstand uden at skulle committe selve mappen.

Facilitere større synlighed af træændringer gennem læsbare forskelle i kildekontrol.

Og optimer installationsprocessen ved at lade npm springe den duplikerede metadata-opløsning over fra tidligere installerede pakker.

En vigtig detalje ved package-lock.json er, at den ikke kan udgives og vil blive ignoreret, hvis den findes uden for toppakken. Den deler formatet med npm-shrinkwrap.json, det er grundlæggende den samme fil, men tillader publicering. Dette anbefales ikke, medmindre du udruler et CLI-værktøj eller på anden måde bruger udgivelsesprocessen til at producere en produktionspakke.

Hvis både package-lock.json og npm-shrinkwrap.json findes i rodmappen i en pakke, vil package-lock.json blive ignoreret fuldstændigt.

Originalt link: https://docs.npmjs.com/files/package-lock.json


Siden udgivelsen af npm 5.x har rollen for 5.6.0-låsen ændret sig mange gange, og nu sidder mange små hvide tekster på internettet fast i den tidligere dokumentoversættelse.

Jeg opdaterede fra npm3.x til npm5, men fandt ud af, at fænomenet, når man udførte 'npm i', ikke var i overensstemmelse med den populære videnskabelige artikel på internettet.

Det nævnes, at uanset hvordan package.json fil ændres, hvis npm i gentagne gange udføres, vil npm blive downloadet i henhold til versionsoplysningerne beskrevet i låsefilen.

Det nævnes også, at når npm i, ignorerer npm låseinformationen og downloader opdateringsmodulet i henhold til den semantiske versioneringsversion af pakken i package.json (låsen synes at være ubrugelig).

**Ifølge oplysningerne er reglerne for npm i ændret tre gange siden udgivelsen af npm 5.0. **

1. NPM 5.0.x version, uanset hvordan package.json ændrer sig, vil npm I blive downloadet i henhold til låsefilen

package-lock.json fil opdateres ikke efter package.json fil er ændret · Nummer #16866 · NPM/NPM-https://github.com/npm/npm/issues/16866
Dette problem klager over dette problem, selvfølgelig ændrede jeg package.json manuelt, hvorfor giver du mig ikke en opgraderingspakke! Og så fører det til problemet med 5.1.0...

2. Efter version 5.1.0 vil npm-installationen ignorere låsefilen for at downloade den nyeste npm

Så rejste nogen dette problem: hvorfor bliver pakkelås ignoreret? · Nummer #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979
Klagen udviklede sig til sidst til reglerne efter version 5.4.2.

3. Efter version 5.4.2, hvorfor ignoreres pakkelås? · Nummer #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979


Groft sagt, hvis package.json ændres, og package.json er forskellig fra låsefilen, vil npm downloade den nyeste pakke i henhold til versionsnummeret og pakkens semantiske betydning ved udførelse af 'npm i' og opdatere den til lås.

Hvis begge er i samme tilstand, vil npm I downloade i henhold til lock, uanset om den faktiske pakkeversion er ny eller ej.






Tidligere:Rapporter statistikker og suppler tidsmetoden uden data
Næste:npm tutorial (4): Installer npm-pakker lokalt
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com