Comment puis-je créer une librairie javascript dans un fichier séparé et « inclure » dans un autre?
-
06-09-2019 - |
Question
D'abord, une mise en garde. Le script principal est pas exécuté dans une page Web . Je vais courir le fichier .js dans Windows en utilisant Windows Script Host.
Le problème: Je voudrais créer un javascript « bibliothèque » contenant un certain nombre d'objets, chacun avec un certain nombre de fonctions. Je pense cette bibliothèque sera obtenir assez grande avec le temps et je voudrais le garder dans un fichier javascript séparé (appelons- Library.js ). Je voudrais accéder aux objets de Library.js à partir d'un autre script (Appelons cette une user.js ).
En substance, je suis à la recherche de quelque chose de similaire à C / C ++ paradigme "comprennent".
Y at-il de toute façon de mettre en œuvre ce en javascript? (Rappelez-vous, ce n'est pas basé sur le Web)
La solution
Cette page ici est le plus proche Je pourrais trouver. Il parle de fichiers .wsf qui vous permettent de combiner plusieurs scripts (qui peuvent être écrites dans des langues différentes) dans un seul fichier.
Pour votre question, il devrait être quelque chose comme:
user.wsf
<job id="IncludeExample">
<script language="JScript" src="library.js"/>
<script language="JScript">
<![CDATA[
// use your library functions here
]]>
</script>
</job>
Il peut y avoir de meilleures façons, mais je ne suis pas un expert en WSH.
Autres conseils
Je sais que c'est une question ancienne et il a été répondu et accepté.
Je sais que sur les fichiers .wsf et comment ils fonctionnent; ils servent.
Cependant, je l'ai aussi trouvé à portée de main pour faire le « inclusion » à partir d'un fichier .js pur qui fonctionne dans WSH. Voici ma solution pour cela.
function includeFile (filename) {
var fso = new ActiveXObject ("Scripting.FileSystemObject");
var fileStream = fso.openTextFile (filename);
var fileData = fileStream.readAll();
fileStream.Close();
eval(fileData);
}
Avec cette fonction d'utilité définie, je peux le faire à partir d'un module javascript:
includeFile("externalFile1.js");
includeFile("externalFile2.js");
includeFile("etc.js");
... et je peux appeler l'une des fonctions ou chatouiller l'une des variables définies dans les modules.
Une technique similaire fonctionne avec les fichiers .vbs:
Comment J'inclure un fichier commun dans VBScript (similaire à C #include)
Vous pouvez atteindre votre objectif en utilisant le Windows Scripting Host au lieu d'un fichier .js ou .vbs spécifique. Plus d'informations peuvent être trouvées à l'adresse le site MSDN .
À partir du lien:
fichier script (* .wsf) Windows est un texte document contenant Extensible Markup Code de la langue (XML). il intègre plusieurs fonctionnalités qui vous offrent une plus grande souplesse de script. Parce que les fichiers de script Windows ne sont pas spécifiques à moteur, ils peuvent contenir script à partir de Windows Script tout moteur de script compatible. Ils agissent en tant que conteneur.
Vous serait cal fichier lthe en utilisant la même syntaxe que un fichier .js et .vbs:
wscript.exe myScriptFile.wsf
MISE À JOUR: correction noté ...
Peut-être que cette phpjs mise en œuvre pourrait aider.