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:
- 1. Dlaczego miałbym używać funkcji rozbieżnych?
- 2. Jak używać przędzy do instalacji bootstrap 4 - biblioteki libsass
- 3. Dlaczego miałbym używać Powershell przez C#?
- 4. Dlaczego miałbym kiedykolwiek używać DoublyLinkedList w PHP?
- 5. Dlaczego do instalacji Pythona należy używać Homebrew?
- 6. jspm lub npm do instalacji pakietów?
- 7. Jak mogę uzyskać Cordova używać js przędzy zamiast NPM do dodawania wtyczek
- 8. instalacji npm nie można odczytać package.json
- 9. Co to są przejściowe atrybuty factory_girl? Dlaczego miałbym go używać?
- 10. Dlaczego miałbym zachować stan płaski
- 11. Jak korzystać z wielu rejestrów npm w Przędzy?
- 12. Jaka jest różnica między runem przędzy a startem npm?
- 13. Kiedy należy używać npm z flagą "-g" i dlaczego?
- 14. Nie można uruchomić "instalacji npm" bez usunięcia node_mulules po uaktualnieniu do NPM 5.4.1
- 15. Dlaczego nie miałbym używać Child.prototype = Parent.Prototype zamiast Child.prototype = new Parent(); dla dziedziczenia JavaScript?
- 16. NPM: Brak instalacji tylko - jak przyspieszyć instalację npm
- 17. Dlaczego miałbym raczej używać natywnego dll lub serwera com do wywoływania kodu Delphi z C#?
- 18. Jak wyświetlić logi z instalacji npm?
- 19. Jak rozwiązać błędy peerinvalid w instalacji npm?
- 20. Błąd instalacji NPM w Phoenix Framework
- 21. Polecenie nie znaleziono po instalacji npm w zsh
- 22. błąd NPM instalacji Gulp: Błąd: ENOENT, lstat
- 23. NPM: jak po prostu uruchomić po instalacji?
- 24. błąd NodeJS NPM proxy podczas instalacji grunt
- 25. Dlaczego NIE chciałbym używać odwrotności wszędzie?
- 26. Instalacja npm: kiedy używać --no-bin-links?
- 27. Dlaczego nie mogę używać SetValue do słownika?
- 28. Co to są klasy Dynamic Proxy i dlaczego miałbym je używać?
- 29. Dlaczego miałbym wybrać prosty, ponad zrelaksowany proces kanonizacji dla DKIM?
- 30. jak zmienić wersję przędzy?