W the blog post announcing yarn (an alternative npm client) mówią: "Najprostszym sposobem na rozpoczęcie jest uruchomienie npm install -g yarn
". Ale jeśli przejdziesz do the "install yarn" page in their docs, "npm install yarn" nie jest wymienione na żadnej ze stron instalacji specyficznych dla platformy i jest oferowane tylko jako trzecia z trzech opcji na stronie "Alternatives". Ponadto po przędzeniu npm install
drukuje ostrzeżenie o wycofaniu: "Zaleca się zainstalowanie Yarn przy użyciu natywnej metody instalacji dla danego środowiska." Więc moje pytanie brzmi, czy jeśli npm install
jest najłatwiejszą metodą instalacji, dlaczego nie jest to zalecana metoda w ich dokumentach? Czy istnieją niedogodności związane z instalowaniem przędzy przy użyciu npm
?Dlaczego nie miałbym używać npm do instalacji przędzy?
Odpowiedz
Nie ma widocznej wady instalowania przędzy przez npm
. W rzeczywistości wybrałem tę metodę samodzielnie z kilku powodów:
- Jest to najwyraźniej najłatwiejszy sposób na zrobienie tego.
npm i --global yarn
i Ty możesz dosłownie zastąpićnpm
nayarn
na swojej konsoli. - Jeśli używasz
nvm
i utrzymania różnych projektów kodu na każdej wersji NodeJS, można zainstalować Yarn na jednej wersji i nie ma go na inny - Szczerze mówiąc, jedyny powód, mogę myśleć, że nie jest wspomniano w platformie szczegółowych instalacjach, jest to, że npm jest platforma agnostyk
Ponieważ npm
nie jest specyficzny dla platformy i działa w prawie każdym systemie, jest wymieniony jako alternatywa. Nie ma żadnych zalet ani wad w stosunku do instalacji specyficznych dla platformy. Różnica polega na lokalizacji instalacji, ale wszystkie metody udostępniają globalne polecenie yarn
dla interfejsu CLI.
Podejrzewam, że wymieniono je jako "najprostszy sposób", ponieważ większość osób zna już dobrze npm
.
Według opiekunów projektu Yarn, instalowanie Yarn przez KMP goes against the goals of the project, może spowodować problemy, i to na ogół gorzej niż metody instalacji platformy specyficzne.
Zalety zalecanej instalacji platformy specyficzne:
Zespoły Yarn pozdrowienia NPM jako niebezpieczne i zawodne. W sekcji „Instalacja poprzez KMP” na Yarn na "Installation" page:
Uwaga: Montaż przędzy poprzez KMP generalnie nie jest zalecane. Zainstalowanie przędzy za pomocą npm jest niedeterministyczne, pakiet nie jest podpisywany, a jedynym sprawdzeniem integralności jest podstawowy skrót SHA1, który jest zagrożeniem bezpieczeństwa podczas instalowania aplikacji dla całego systemu.
Z tych powodów zaleca się zainstalowanie Przędzy metodą instalacji najlepiej dopasowaną do używanego systemu operacyjnego.
Running przędzy, która jest odrębnym narzędzie menedżer pakietów, poprzez KMP może prowadzić do problemów krawędzi sprawy (zob issue 2072)
- Instalowanie za pomocą menedżera pakietów systemu oddziela Przędza z KMP, co pozwala na uruchamianie przędza bez KMP
- menedżer pakietów System zwykle kursuje regularnie, utrzymując przędza aktualizowane
- Instalacja Yarn przez KMP jest slow
Zalety npm install -g yarn
:
- Szybki i łatwy (
npm install -g yarn
) - można zrobić w dowolnym środowisku npm (platforma-agnostyk)
- Familiar paradygmatu i procesu dla programistów node.js
- można łatwo aktualizowany (
npm update -g yarn
)- komenda aktualizacja Yarn istnieje (
yarn self-update
), ale wydaje się być broken
- komenda aktualizacja Yarn istnieje (
- Nie uzależnienie od menedżerów pakietów System
- można stosować różne wersje przędzy do różnych projektów lub różnymi wersjami node.js poprzez
nvm
pakietu System argumenty Manager zalecany instalacja ma tendencję do załamywania się w odniesieniu do Windows, gdzie nie ma oficjalnego menedżera pakietów (chyba że liczyć Windows Update). Ponadto menedżerowie pakietów Windows, tacy jak Chocolatey, często nie są skonfigurowani do automatycznych aktualizacji.
Nie jestem pewien, czy w pełni zgadzam się z decyzją zespołu przędzy w tej sprawie, ale robią pewne uczciwe punkty. Projekt Yarn jest wciąż młody i jeśli ma stać się zamiennikiem dla npm, nie ma sensu zachęcać npma do jego podstawowego instalatora.
Bez względu na to, instalacje za pomocą npm w większości przypadków działają dobrze na razie.
Źródła: