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?
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?
Odpowiedzi:
- 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-optionalprzełącznikiem.
To SO Q&A zatytułowane: npm installinstaluje 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-installedprzełącznik. Ale dokumenty nie zawierają żadnego odniesienia do tego przełącznika.
Jeśli sam to rozwijasz node_module, nie marnuj czasu na npm installs, 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_modulefolderu.src/my_appnpm link my_module. Te linki node_modules/my_modulew tym konkretnym projekcie do folderu globalnej, tak że requirerozmowy szukający my_modulewiatr 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:
mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
--ignore-packageczy coś takiego.