2016-04-07 5 views
1

Ich schreibe Code in Javascript für Espruino (eine eingebettete Plattform) und es gibt eine Einschränkung: Es darf nur eine Datei auf dem Gerät gespeichert werden.Wie man manuell zwei Javascript-Dateien bündelt?

Für den folgenden Code zu arbeiten:

var x = new require("Something"); 
x.hello() 

Something Module sollten aus main.js Datei erreichbar sein. Das Something Modul ist eine separate Datei und sieht wie folgt aus:

function Something() { 
    .... 
} 

Something.prototype.hello = function() { 
    console.log("Hello there!"); 
} 

exports = Something; 

Frage ist; Wie kann ich diese beiden Dateien verketten und weiterhin das Something Modul als require("Something"); Format verwenden?

Antwort

0

Warum verwenden Sie Webpack nicht, um die Moduldateien in einer Datei zu bündeln? Ich nehme an, dass das aktuelle Verzeichnis Ihr Projektverzeichnis

  • Zuerst installieren NodeJS an:

https://nodejs.org/en/download/ oder sudo apt-get install NodeJS

  • Zweitens installieren webpack mit diesem Befehl

npm i -g webpack

  • bündeln Ihr Modul

Ihr Bündel bauen diesen Befehl ausführen:

webpack ./main.js Bündel. js

  • Hinweis: Ihre bundle.js gehören alle Moduldateien, die Sie in main.js erforderlich sind
+0

Ich kann nicht Webpack verwenden, weil dies keine Webanwendung ist. Ich habe auch versucht, ohne Glück zu browserifizieren. – ceremcem

1

Die Antwort in Espruino Foren gefunden:

# create bundle 
BUNDLE="init.min.js" 
echo "" > ${BUNDLE} 

# Register modules via `Modules.addCached()` method 
# see: http://forum.espruino.com/comments/12899741/ 
MODULE_NAME="FlashEEPROM" 
MODULE_STR=$(uglifyjs -c -m -- ${MODULE_NAME}.js | sed 's/\"/\\\"/g' | sed "s/\n//g") 
echo "Modules.addCached(\"${MODULE_NAME}\", \"${MODULE_STR}\");" >> ${BUNDLE} 
uglifyjs -c -m -- init.js >> ${BUNDLE}