Sto implementando un'applicazione client in JavaScript utilizzando Node.js. Poiché distribuirò il software su molte macchine, vorrei ridurre al minimo le dimensioni del pacchetto che distribuisco. In particolare, vorrei rimuovere tutti i file non necessari da node_modules.Compilazione di node_modules per la distribuzione lato client
Per i principianti ciò significa dedurre e sfoltire l'albero delle dipendenze, che npm
può fare per me. Ma vorrei anche rimuovere tutti i file package.json
e (soprattutto) tutti gli altri file che non sono necessari per la distribuzione. In molti dei pacchetti che sto usando ci sono tonnellate di test, versioni multiple di file (minified, browserified, ecc.) E simili. Ho solo bisogno dei file JavaScript effettivamente utilizzati dall'app in esecuzione. Altrimenti distribuirò alcuni 100Kb di file che non sono effettivamente usati.
Conosco lo node-browserify
ma la mia app verrà eseguita in un ambiente CommonJS, non un browser, quindi mi piacerebbe tenere separati i moduli e caricarli con require
.
Sto pensando di scrivere un plugin Grunt che cammina l'albero delle dipendenze utilizzando required
, tira fuori i file JavaScript necessari in fase di esecuzione e li scrive una struttura ad albero in modo che possano essere caricati usando require
(basta caricare i moduli direttamente senza necessitando di un package.json
). Ma mi piacerebbe assicurarmi che nessuno mi abbia fatto questo prima di affrontarlo.
I prob abilmente non lo ha aggiunto a NPM ma è disponibile da Github tramite il link nella mia risposta. –