Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 9038|Válasz: 0

Mi az a package-lock.json, amit npm telepítés generál?

[Linket másol]
Közzétéve 2017. 12. 13. 13:17:45 | | |
Az npm módosítás esetén node_modules fa vagy bármilyen művelet package.json automatikusan generálnak egy package-lock.json. Pontosan leírja azt a fát, amelyet generálnak, hogy a következő telepítések ugyanazt a fát hozhassák létre, függetlenül a köztes függőségi frissítésektől.

Ez a fájl a forráskód tárolóba való beküldésre készült, és különböző célokra elérhető:

Leírja a függőségi fa egyetlen reprezentációját, hogy garantálja, hogy a csapattársak, telepítések és folyamatos integráció biztosítsa, hogy pontosan ugyanazok a függőségek legyenek telepítve.

Biztosíts a felhasználóknak egy eszközt, amellyel "előrehaladhatnak" egy korábbi node_modules állapotba anélkül, hogy magára a könyvtárra kellene kötniük.

Elősegítse a fa változások jobb láthatóságát olvasható forrásvezérlési különbségek révén.

És optimalizálja a telepítési folyamatot azzal, hogy az npm áthagyhatja a korábban telepített csomagok duplikált metaadat-felbontását.

package-lock.json egyik kulcsfontosságú részlete, hogy nem lehet kiadni, és figyelmen kívül hagyják, ha a felső kategórián kívül találják. Ugyanaz a formátum a npm-shrinkwrap.json-vel, lényegében ugyanaz a fájl, de lehetővé teszi a publikálást. Ez nem ajánlott, hacsak nem telepítel egy CLI eszközt, vagy más módon a kiadási folyamatot használod gyártási csomag elkészítéséhez.

Ha mind a package-lock.json, mind a npm-shrinkwrap.json létezik egy csomag gyökérkönyvtárában, package-lock.json teljesen figyelmen kívül hagyják.

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


Az npm 5.x megjelenése óta az 5.6.0 zár szerepe sokszor változott, és most sok kis fehér szöveg az interneten ragadt meg a korábbi dokumentumfordításban.

Frissítettem npm3.x-ről npm5-re, de azt tapasztaltam, hogy az 'npm i' futtatása során történt jelenség nem egyezik az interneten megjelenő népszerű tudományos cikkekkel.

Megemlítik, hogy bármilyen módon is módosítják package.json fájlt, ha az npm i ismétlődően lefuttatják, az npm a zárolási fájlban leírt verzióinformációk szerint töltődik le.

Azt is említik, hogy amikor ismétlik az npm i-t, az npm figyelmen kívül hagyja a zárolási információkat, és letölti a frissítő modult a package.json csomag szemantikai verziójának információi szerint (a zár haszontalannak tűnik).

**Az információk szerint az npm i szabályai háromszor változtak az npm 5.0 megjelenése óta. **

1. NPM 5.0.x verzió, függetlenül attól, hogyan változik a package.json, az NPM I a lock fájl szerint lesz letöltve

package-lock.json fájl nem frissül, miután package.json fájlt megváltoztattak · Szám #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Ez a probléma panaszkodik erről a problémáról, nyilván manuálisan cseréltem ki a package.json, miért nem adsz egy frissítő csomagot! És aztán az 5.1.0 problémájához vezet...

2. Az 5.1.0 verzió után az npm telepítése figyelmen kívül hagyja a zárolási fájlt, hogy letöltse a legfrissebb npm-t

Aztán valaki felvetette ezt a kérdést, miért hagyják figyelmen kívül a csomag-zárolást? · Szám #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
A panasz végül a 5.4.2-es verzió után kialakult szabályokká.

3. Az 5.4.2 verzió után miért hagyják figyelmen kívül a csomag-zárolást? · Szám #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


Nagyjából ha a package.json megváltozik, és a package.json eltér a zárolt fájltól, az npm letölti a legújabb csomagot a verziószám és a csomag szemantikai jelentése alapján az 'npm i' futtatásakor, majd frissíti zárolására.

Ha mindkettő ugyanabban az állapotban van, akkor az npm futtatása a zárolás szerint tölt le, függetlenül attól, hogy a tényleges csomagverzió új-e vagy sem.






Előző:Számolj statisztikákkal, és egészítsd ki az időmódszert adat nélkül
Következő:npm oktató (4): Telepíts npm csomagokat helyben
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com