Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 9038|Odpowiedź: 0

Jaki jest package-lock.json generowany przez instalację npm?

[Skopiuj link]
Opublikowano 13.12.2017 13:17:45 | | |
Dla modyfikacji npm node_modules drzewa lub dowolnego package.json akcji, package-lock.json zostanie automatycznie wygenerowany. Opisuje dokładnie drzewo, które jest generowane, aby kolejne instalacje mogły generować to samo drzewo, niezależnie od pośrednich aktualizacji zależności.

Ten plik przeznaczony jest do przesyłania do repozytorium kodu źródłowego i jest dostępny do różnych celów:

Opisuje pojedynczą reprezentację drzewa zależności, aby zagwarantować, że współpracownicy zespołu, wdrożenia i ciągła integracja zapewniają instalację dokładnie tych samych zależności.

Zapewnij użytkownikom narzędzie do "przejścia" do stanu poprzedniego node_modules bez konieczności zatwierdzania samego katalogu.

Ułatwić większą widoczność zmian w drzewie dzięki czytelnym różnicom w kontroli kodu źródłowego.

I zoptymalizować proces instalacji, pozwalając npm pominąć duplikatowe rozwiązywanie metadanych wcześniej zainstalowanych pakietów.

Kluczowym szczegółem package-lock.json jest to, że nie można go wydać i zostanie zignorowany, jeśli zostanie znaleziony poza pakietem najwyższej klasy. Dzieli format z npm-shrinkwrap.json, to zasadniczo ten sam plik, ale pozwala na publikację. Nie zaleca się tego, chyba że wdrożysz narzędzie CLI lub w inny sposób wykorzystasz proces wydania do stworzenia pakietu produkcyjnego.

Jeśli zarówno package-lock.json, jak i npm-shrinkwrap.json istnieją w katalogu głównym pakietu, package-lock.json zostanie całkowicie zignorowany.

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


Od czasu wydania npm 5.x rola blokady 5.6.0 zmieniała się wielokrotnie, a teraz wiele małych białych tekstów w Internecie utknęło w poprzednim tłumaczeniu dokumentów.

Zaktualizowałem z npm3.x na npm5, ale okazało się, że zjawisko podczas wykonywania 'npm i' nie było zgodne z artykułem popularnonaukowym w Internecie.

Wspomniano, że niezależnie od tego, jak package.json plik zostanie zmodyfikowany, jeśli npm i jest wielokrotnie wykonywane, npm zostanie pobrane zgodnie z informacjami o wersji opisanej w pliku blokady.

Wspomniano też, że podczas powtarzania npm i npm ignoruje informacje o blokadzie i pobiera moduł aktualizacji zgodnie z informacjami o wersji wersji semantycznej pakietu w package.json (blokada wydaje się bezużyteczna).

**Według informacji, zasady npm i zmieniały się trzykrotnie od czasu wydania npm 5.0. **

1. Wersja npm 5.0.x, bez względu na zmiany package.json, npm i będzie pobierany zgodnie z plikiem blokady

package-lock.json plik nie aktualizowany po zmianie package.json pliku · Numer #16866 · npm/npm https://github.com/npm/npm/issues/16866
Ten problem dotyczy właśnie tego problemu, oczywiście zmieniłem package.json ręcznie, więc może dasz mi pakiet aktualizacji! A potem prowadzi to do problemu 5.1.0...

2. Po wersji 5.1.0 instalacja npm zignoruje plik blokady, aby pobrać najnowszy npm

Potem ktoś poruszył ten problem, dlaczego blokada pakietów jest ignorowana? · Numer #17979 · npm/npm https://github.com/npm/npm/issues/17979
Skarga ostatecznie przekształciła się w zasady po wersji 5.4.2.

3. Dlaczego po wersji 5.4.2 blokada pakietów jest ignorowana? · Numer #17979 · npm/npm https://github.com/npm/npm/issues/17979


Mówiąc ogólnie, jeśli package.json zostanie zmieniony, a package.json różni się od pliku blokady, npm pobiera najnowszy pakiet zgodnie z numerem wersji i semantycznym znaczeniem pakietu podczas wykonywania 'npm i' i aktualizuje go na blokadę.

Jeśli oba są w tym samym stanie, to uruchamiając npm i pobieram zgodnie z blokadą, niezależnie od tego, czy faktyczna wersja pakietu jest nowa, czy nie.






Poprzedni:Raportuj statystyki i uzupełniaj metodę czasu bez danych
Następny:Tutorial npm (4): Instaluj lokalnie pakiety npm
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com