2013-06-21 11 views
6

Ich bin eine clientseitige Anwendung in JavaScript Umsetzung Node.js. mit Da ich die Software auf vielen Computern bereitstellen werde, möchte ich die Größe des Pakets minimieren, das ich verteile. Insbesondere möchte ich alle unnötigen Dateien von node_modules entfernen.Stauchen node_modules für die clientseitige Bereitstellung

Für den Anfang bedeutet dies deduping und beschneidet den Abhängigkeitsbaum, die npm für mich tun kann. Aber ich würde auch alle package.json Dateien entfernen möchten und (vor allem) alle anderen Dateien, die nicht für den Einsatz benötigt werden. In vielen der Pakete, die ich verwende, gibt es Tonnen von Tests, mehrere Versionen von Dateien (minimized, browserified, etc.) und dergleichen. Ich brauche nur die JavaScript-Dateien, die tatsächlich von der laufenden App verwendet werden. Ansonsten verteile ich ein paar 100Kb Dateien, die nicht wirklich benutzt werden.

Ich weiß über node-browserify, aber meine App wird in einer CommonJS-Umgebung ausgeführt werden, nicht ein Browser, also möchte ich die Module getrennt halten und sie mit require laden.

Ich denke an ein Grunt Plugin zu schreiben, die den Abhängigkeitsbaum geht required verwenden, zieht die JavaScript-Dateien zur Laufzeit benötigt und schreibt sie in eine Baumstruktur, so dass sie require geladen werden (nur die Module direkt laden, ohne brauche eine package.json). Aber ich würde gerne sicherstellen, dass niemand das für mich getan hat, bevor ich es anwende.

Antwort

2

FWIW: grunt-package-minifier. Mein Anwendungsfall ist ein wenig ungewöhnlich, da wir eine cross-browser extension framework entwickeln. Wie Browserify und im Gegensatz zu Standard NodeJS Implementierungen wollen wir die Größe unserer Verteilung minimieren, einschließlich Commonjs Module. Aber im Gegensatz zu Browserify unterstützen wir Commonjs so können wir die Modulstruktur behalten, statt alles in eine große Datei verketten.

Im Wesentlichen streife ich alle package.json, README, Testdateien usw. von node_modules, aber behalten Sie die wesentlichen JavaScript-Dateien in einer Struktur, die von einem CommonJS-Modullader verwendet werden kann.

2

Grun-Paket-minifier nicht gefunden wird (Dies ist keine wirkliche Antwort. Ich wollte oben Antwort auf COMMET in aber ich genügend Ruf haben noch nicht :().

npm installieren Grunzen-Paket-minifier --save-dev Passwort:. npm WARN package.json [email protected] Kein Repository Feld npm package.json WARN [email protected] keine Readme Daten npm ERR 404 404 Not Found: Grunzen-Paket- minifier npm ERR! 404 npm ERR! 404 'grunt-package-minifier' befindet sich nicht in der npm-Registry

+0

I prob Ich habe es nicht zu NPM hinzugefügt, aber es ist von Github über den Link in meiner Antwort verfügbar. –

Verwandte Themen