Come posso creare una libreria javascript in un file separato e “include” in un altro?
-
06-09-2019 - |
Domanda
In primo luogo, un avvertimento. Lo script principale è non eseguito in una pagina web . Sarò eseguendo il file .js in Windows utilizzando Windows Script Host.
Il problema: Vorrei creare un javascript "libreria" che contiene una serie di oggetti, ognuno con una serie di funzioni. Mi aspetto che questa biblioteca otterrà piuttosto grande con il tempo e vorrei tenerlo in un file JavaScript separato (chiamiamolo Library.js ). Vorrei accedere agli oggetti da Library.js da un altro script (chiamiamolo questo user.js ).
In sostanza, sto cercando qualcosa di simile al C / C ++ "include" paradigma.
Esiste un modo per implementare questo in javascript? (Ricordate, questo non è web-based)
Soluzione
Questa pagina qui è la più vicina sono riuscito a trovare. Si parla di file wsf che consentono di combinare più script (che può essere scritto in diverse lingue) in un unico file.
Per la tua domanda dovrebbe essere qualcosa di simile:
user.wsf
<job id="IncludeExample">
<script language="JScript" src="library.js"/>
<script language="JScript">
<![CDATA[
// use your library functions here
]]>
</script>
</job>
Ci possono essere modi migliori, ma io non sono un esperto di WSH.
Altri suggerimenti
So che questa è una vecchia questione ed è stato risposto e accettato.
Lo so sui file wsf e come funzionano; essi servono allo scopo.
Tuttavia, ho anche trovato a portata di mano per fare il "inclusione" da all'interno di un file .js pura che viene eseguito in WSH. Ecco la mia soluzione per questo.
function includeFile (filename) {
var fso = new ActiveXObject ("Scripting.FileSystemObject");
var fileStream = fso.openTextFile (filename);
var fileData = fileStream.readAll();
fileStream.Close();
eval(fileData);
}
Con questa funzione di utilità definita, posso fare questo all'interno di un modulo di javascript:
includeFile("externalFile1.js");
includeFile("externalFile2.js");
includeFile("etc.js");
... e poi posso invocare una delle funzioni o solleticare qualsiasi delle variabili definite da tali moduli.
Una tecnica simile funziona con i file .vbs:
Come fare includo un file comune in VBScript (simile a C # include)?
È possibile raggiungere il tuo obiettivo utilizzando il Windows Scripting Host al posto di uno specifico file js o vbs. Maggiori informazioni sono disponibili all'indirizzo il sito MSDN .
Dal link:
script di Windows (* .wsf) file è un testo documento contenente Extensible Markup Lingua codice (XML). incorpora diverse funzioni che offrono maggiore flessibilità di scripting. Poiché i file di script di Windows non sono specifiche per il motore, che possono contenere script da qualsiasi script di Windows motore di scripting compatibili. agiscono come un contenitore.
Si sarebbe cal file di lthe utilizzando la stessa sintassi come un file js e vbs:
wscript.exe myScriptFile.wsf
AGGIORNAMENTO: Correzione notato ...
Forse questo phpjs implementazione potrebbe aiutare.