To polecenie npm-shrinkwrap, które można uruchomić w darmowym dostawcy hostingu OnWorks, korzystając z jednej z wielu naszych darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
npm-shrinkwrap - Zablokuj wersje zależności
STRESZCZENIE
npm folia ochronna
OPIS
To polecenie blokuje wersje zależności pakietu, dzięki czemu możesz je kontrolować
dokładnie, które wersje poszczególnych zależności zostaną użyte podczas instalacji pakietu.
pakiet.json plik jest nadal wymagany, jeśli chcesz go użyć Npm zainstalować.
Domyślnie Npm zainstalować rekurencyjnie instaluje zależności docelowe (zgodnie ze specyfikacją w
pakiet.json), wybierając najnowszą dostępną wersję spełniającą zależność
Wzorzec Semver. W niektórych sytuacjach, szczególnie podczas wysyłki oprogramowania, gdzie każda zmiana
jest ściśle zarządzany, pożądane jest pełne określenie każdej wersji każdej zależności
rekurencyjnie, aby kolejne kompilacje i wdrożenia nie powodowały przypadkowego pobierania nowszych wersji
Wersje zależności spełniające wzorzec semver. Określanie konkretnego semver
wzorce w każdej zależności pakiet.json ułatwiłoby to, ale nie zawsze tak jest
możliwe lub pożądane, na przykład gdy inny autor jest właścicielem pakietu npm. Możliwe jest również
sprawdzaj zależności bezpośrednio w systemie kontroli źródła, ale może to być niepożądane dla innych
powody.
Jako przykład rozważmy pakiet A:
{
"nazwa": "A",
"wersja": "0.1.0",
„zależności”: {
"B": "<0.1.0"
}
}
pakiet B:
{
"nazwa": "B",
"wersja": "0.0.1",
„zależności”: {
"C": "<0.1.0"
}
}
i pakiet C:
{
"nazwa": "C",
"wersja": "0.0.1"
}
Jeżeli w rejestrze dostępne są tylko te wersje A, B i C, to normalne Npm
zainstalować A zainstaluje:
[email chroniony]
`-- [email chroniony]
`-- [email chroniony]
Jeśli jednak [email chroniony] jest publikowany, a następnie świeży Npm zainstalować A zainstaluje:
[email chroniony]
`-- [email chroniony]
`-- [email chroniony]
zakładając, że nowa wersja nie zmodyfikowała zależności B. Oczywiście, nowa wersja B
może obejmować nową wersję języka C i dowolną liczbę nowych zależności. Jeśli takie zmiany są
niepożądane, autor A mógłby określić zależność od [email chroniony]. Jednakże, jeśli autor A
i autor B to nie ta sama osoba, nie ma możliwości, aby autor A mógł stwierdzić, że on lub ona
nie chce wprowadzać nowo opublikowanych wersji C, skoro B w ogóle się nie zmieniło.
W tym przypadku autor A może uruchomić
npm folia ochronna
To generuje npm-shrinkwrap.json, co będzie wyglądać mniej więcej tak:
{
"nazwa": "A",
"wersja": "1.1.0",
„zależności”: {
"B": {
"wersja": "1.0.1",
"od": "B@^1.0.0",
„rozwiązany”: „https://registry.npmjs.org/B/-/B-1.0.1.tgz”,
„zależności”: {
"C": {
"wersja": "1.0.1",
„z”: „org/C#v1.0.1”,
"resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
}
}
}
}
}
Polecenie shrinkwrap zablokowało zależności na podstawie tego, co jest aktualnie
zainstalowany w node_modules. Zachowanie instalacji ulega zmianie na:
1. Odtworzono drzewo modułów opisane przez folię termokurczliwą. Oznacza to odtworzenie
struktura opisana w pliku, wykorzystująca określone pliki wymienione w „rozwiązanym”, jeśli
dostępne, a jeśli nie są dostępne, powraca się do normalnego rozwiązywania pakietów przy użyciu „wersji”.
2. Drzewo jest przeglądane, a wszelkie brakujące zależności są instalowane w standardowy sposób.
Korzystanie z zapakowany w folię termokurczliwą Pakiety
Korzystanie z opakowania w folii termokurczliwej niczym nie różni się od korzystania z jakiegokolwiek innego opakowania: możesz Npm
zainstalować ręcznie lub dodaj zależność do swojego pakiet.json pliku i Npm zainstalować to.
Budowanie zapakowany w folię termokurczliwą Pakiety
Aby zmniejszyć rozmiar istniejącego pakietu:
1. run Npm zainstalować w katalogu głównym pakietu, aby zainstalować bieżące wersje wszystkich
zależności.
2. Sprawdź, czy pakiet działa zgodnie z oczekiwaniami w tych wersjach.
3. run Npm folia termokurczliwa, Dodaj npm-shrinkwrap.json do git i opublikuj swój pakiet.
Aby dodać lub zaktualizować zależność w pakiecie w formacie shrinkwrapped:
1. run Npm zainstalować w katalogu głównym pakietu, aby zainstalować bieżące wersje wszystkich
zależności.
2. Dodaj lub zaktualizuj zależności. Npm zainstalować --zapisać każdy nowy lub zaktualizowany pakiet
indywidualnie, aby zaktualizować pakiet.json i folię termokurczliwą. Pamiętaj, że muszą być
wyraźnie nazwany w celu zainstalowania: uruchomiony Npm zainstalować bez argumentów będzie
po prostu odtworzyć istniejącą folię termokurczliwą.
3. Sprawdź, czy pakiet działa zgodnie z oczekiwaniami przy uwzględnieniu nowych zależności.
4. Zatwierdź nowe npm-shrinkwrap.jsoni opublikuj swój pakiet.
Aby wyświetlić zależności dotyczące nowszych dostępnych wersji, możesz użyć polecenia npm help outdated.
Inne Komentarz
Plik termokurczliwy musi być zgodny z plikiem pakietu pakiet.json plik. Npm folia termokurczliwa
zakończy się niepowodzeniem, jeśli wymagane zależności nie zostaną już zainstalowane, ponieważ spowodowałoby to
shrinkwrap, który w rzeczywistości nie zadziała. Podobnie polecenie zakończy się niepowodzeniem, jeśli
pakiety zewnętrzne (nieodwołane przez pakiet.json), ponieważ wskazywałoby to, że
pakiet.json nie jest poprawne.
Ponieważ Npm folia termokurczliwa ma na celu zablokowanie zależności do użytku produkcyjnego,
devZależności nie zostanie uwzględniony, chyba że wyraźnie ustawisz --rozw flaga, gdy biegasz
Npm folia termokurczliwa. Jeśli zainstalowano devZależności są wykluczone, wówczas npm wydrukuje ostrzeżenie.
Jeśli chcesz, aby były instalowane domyślnie wraz z modułem, rozważ ich dodanie
do Zależności zamiast.
Jeżeli opakowanie A w folii termokurczliwej zależy od opakowania B w folii termokurczliwej, opakowanie B w folii termokurczliwej nie będzie
używany jako część instalacji A. Jednakże, ponieważ folia termokurczliwa A jest wykonana z
prawidłowa instalacja B i rekurencyjnie określa wszystkie zależności, zawartość B
shrinkwrap będzie domyślnie zawarty w shrinkwrap A.
Ostrzeżenia
Jeśli chcesz zablokować określone bajty zawarte w pakiecie, na przykład, aby mieć
Jeśli masz 100% pewności, że uda Ci się odtworzyć wdrożenie lub kompilację, powinieneś to sprawdzić
swoje zależności do kontroli źródła lub skorzystaj z innego mechanizmu, który może je zweryfikować
treści, a nie wersje.
Użyj npm-shrinkwrap online, korzystając z usług onworks.net