Próbuję zmodyfikować pakiet npm z wieloma zależnościami. Wykonanie tego npm install -g .
zajmuje dużo czasu. Czy mam inne opcje oprócz usuwania zależności z paczek.json?
- nie jest opcjonalna opcja jest teraz zaimplementowana zgodnie z tą dokumentacją https://docs.npmjs.com/cli/install :
The --no-optional argument will prevent optional dependencies from being installed.
Przeglądając dokumenty, wydaje się, że nie ma opcji poza --no-optional
przełącznikiem.
To SO Q&A zatytułowane: npm install
instaluje wszystkie zależności mojego projektu przez sieć, nawet jeśli są już zainstalowane lub dostępne z pamięci podręcznej , wydaje się sugerować, że istnieje --skip-installed
przełącznik. Ale dokumenty nie zawierają żadnego odniesienia do tego przełącznika.
Jeśli sam to rozwijasz node_module
, nie marnuj czasu na npm install
s, zamiast tego użyj npm link
.
Krótko mówiąc, tworzysz dowiązanie symboliczne do folderu modułu w folderze globalnym będącym własnością npm, a następnie w folderze aplikacji prosisz npm o użycie tego dowiązania symbolicznego.
To powoduje, że zmiany, które wprowadzasz w folderze modułu, są natychmiast odzwierciedlane w Twojej aplikacji.
Oto główne kroki (skopiowane z samouczka, do którego link znajduje się poniżej, koniecznie przeczytaj samouczek dla ważnych gotchas):
src/my_module
npm link
”. To tworzy symboliczne łącze z folderu globalnego do src/my_module
folderu.src/my_app
npm link my_module
. Te linki node_modules/my_module
w tym konkretnym projekcie do folderu globalnej, tak że require
rozmowy szukający my_module
wiatr się załadowaniem go z folderu rozwoju
src/my_module
.Zobacz ten samouczek: http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears
I oficjalne dokumenty dotyczące npm link
: https://docs.npmjs.com/cli/link
Ta funkcja została zażądana w 2010 roku, ale niestety została zignorowana i zamknięta: https://github.com/npm/npm/issues/340
Wypróbowałem kilka opcji i w końcu znalazłem dość proste rozwiązanie - zmień nazwę pliku package.json na coś innego przed wykonaniem instalacji npm, a następnie przywróć go z powrotem po zakończeniu instalacji:
źródło
--ignore-package
czy coś takiego.