Wie kann ich eine JavaScript-Bibliothek in einer separaten Datei zu erstellen und „include“ es in einem anderen?

StackOverflow https://stackoverflow.com/questions/928237

Frage

Als erstes wird ein Vorbehalt. Das Hauptskript läuft nicht in einer Webseite . Ich werde die JS-Datei in Windows mit dem Windows Script Host ausgeführt werden.

Das Problem: Ich mag eine javascript „Bibliothek“ schaffen, eine Reihe von Objekten, die jeweils mit einer Reihe von Funktionen enthält. Ich erwarte, dass diese Bibliothek wird ziemlich groß mit der Zeit bekommen und möchte es in einer separaten JavaScript-Datei halten (nennen wir es Library.js ). Ich möchte auf die Objekte zuzugreifen von Library.js aus einem anderen Skript (lassen Sie uns diesen einen Anruf user.js ).

Im Wesentlichen, Ich suche nach etwas ähnlich der C / C ++ "umfassen" Paradigma.

Gibt es trotzdem, dies in Javascript zu implementieren? (Denken Sie daran, dies ist nicht webbasiert)

War es hilfreich?

Lösung

Diese Seite hier ist in der Nähe Ich könnte finden. Er spricht über WSF-Dateien, die Sie mehrere Skripte kombinieren lassen in einer Datei (die in verschiedenen Sprachen geschrieben werden).

Für Ihre Frage sollte es sein, so etwas wie:

user.wsf

<job id="IncludeExample">
   <script language="JScript" src="library.js"/>
   <script language="JScript">
      <![CDATA[
      // use your library functions here
      ]]>
   </script>
</job>

Es kann eine bessere Art und Weise sein, aber ich bin kein Experte WSH.

Andere Tipps

Ich weiß, dass dies eine alte Frage, und es beantwortet und akzeptiert wurde.

Ich weiß, über WSF-Dateien und wie sie funktionieren; sie dienen dem Zweck.

Allerdings habe ich finde es auch praktisch, um die „Aufnahme“ aus einer reinen JS-Datei zu tun, die in WSH läuft. Hier ist meine Lösung dafür.

    function includeFile (filename) {
        var fso = new ActiveXObject ("Scripting.FileSystemObject");
        var fileStream = fso.openTextFile (filename);
        var fileData = fileStream.readAll();
        fileStream.Close();
        eval(fileData);
    }

Mit dieser Utility-Funktion definiert, kann ich dies tun, aus einem Javascript-Modul:

includeFile("externalFile1.js");
includeFile("externalFile2.js");
includeFile("etc.js");

... und dann kann ich eine der Funktionen aufrufen oder in diesen Modulen definiert eine der Variablen kitzeln.

Eine ähnliche Technik arbeitet mit vbs-Dateien:
Wie ich schließe eine gemeinsame Datei in VBScript (ähnlich C # include)?

Sie können Ihr Ziel erreichen, indem Sie den Windows Scripting Host anstelle einer bestimmten Js oder VBS-Datei verwenden. Weitere Informationen finden Sie unter der MSDN-Website .

Aus dem Link:

  

Windows-Skript (* WSF) Datei ist eine Text   Dokument Extensible Markup enthält,   Language (XML) Code. es enthält   mehrere Funktionen, die Sie anbieten   erhöhte scripting Flexibilität.   Da Windows Script-Dateien sind nicht   motorspezifischen, können sie enthalten   Skript von jedem Windows Script   kompatibele Scripting-Engine. Sie schauspielern   als Container.

Sie würden cal lthe Datei die gleiche Syntax wie eine Js und VBS-Datei mit:

  

wscript.exe myScriptFile.wsf

AKTUALISIERT: Korrektur bemerkt ...

Vielleicht phpjs diese Implementierung könnte helfen.

http://phpjs.org/functions/include:433

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top