Compactación de node_modules para la implementación del lado del cliente

Estoy implementando una aplicación del lado del cliente en JavaScript usando Node.js. Debido a que implementaré el software en muchas máquinas, me gustaría minimizar el tamaño del paquete que distribuyo. En particular, me gustaría eliminar cualquier archivo innecesario de node_modules.

Para empezar, esto significa deducir y podar el árbol de dependencias, quenpm puede hacer por mi Pero también me gustaría eliminar todos lospackage.json Archivos y (especialmente) cualquier otro archivo que no sea necesario para la implementación. En muchos de los paquetes que estoy usando hay toneladas de pruebas, múltiples versiones de archivos (minified, browserified, etc.) y similares. Solo necesito los archivos JavaScript que realmente utiliza la aplicación en ejecución. De lo contrario, estaré distribuyendo unos pocos 100 Kb de archivos que no se utilizan realmente.

Se acerca denode-browserify pero mi aplicación se ejecutará en un entorno CommonJS, no en un navegador, así que me gustaría mantener los módulos separados y cargarlos conrequire.

Estoy pensando en escribir un complemento Grunt que recorra el árbol de dependencias usandorequired, saca los archivos JavaScript necesarios en tiempo de ejecución y los escribe en una estructura de árbol para que puedan cargarse usandorequire (simplemente cargando los módulos directamente sin necesidad depackage.json). Pero me gustaría asegurarme de que nadie haya hecho esto por mí antes de abordarlo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta