Kompaktowanie node_modules do wdrożenia po stronie klienta

Implementuję aplikację po stronie klienta w JavaScript przy użyciu Node.js. Ponieważ będę wdrażał oprogramowanie na wielu komputerach, chciałbym zminimalizować rozmiar pakietu, który dystrybuuję. W szczególności chciałbym usunąć niepotrzebne pliki z node_modules.

Na początek oznacza to deduplikację i oczyszczanie drzewa zależności, którenpm może dla mnie zrobić. Ale chciałbym też usunąć wszystkiepackage.json pliki i (zwłaszcza) wszelkie inne pliki, które nie są potrzebne do wdrożenia. W wielu pakietach, z których korzystam, jest mnóstwo testów, wiele wersji plików (minifikowanych, przeglądanych itp.) I tym podobnych. Potrzebuję tylko plików JavaScript, które są rzeczywiście używane przez uruchomioną aplikację. W przeciwnym razie rozprowadzę kilka 100 KB plików, które nie są faktycznie używane.

wiem onode-browserify ale moja aplikacja będzie działać w środowisku CommonJS, a nie w przeglądarce, więc chciałbym zachować moduły osobno i załadować jerequire.

Zastanawiam się nad napisaniem wtyczki Grunt, która używa drzewa zależności za pomocąrequired, wyciąga pliki JavaScript potrzebne w czasie wykonywania i zapisuje je w strukturze drzewa, aby można je było załadować za pomocąrequire (po prostu ładowanie modułów bezpośrednio bez potrzebypackage.json). Ale chciałbym się upewnić, że nikt mi tego nie zrobił, zanim to zrobię.

questionAnswers(2)

yourAnswerToTheQuestion