Como posso criar uma biblioteca de javascript em um arquivo separado e “incluir”-lo em outro?

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

Pergunta

Em primeiro lugar, uma ressalva. O script principal é não correr em uma página web . Eu estarei executando o arquivo .js no Windows usando o Windows Script Host.

O problema: Eu gostaria de criar uma "biblioteca" javascript contendo um número de objetos, cada um com um número de funções. Espero que essa biblioteca vai ficar bastante grande com o tempo e gostaria de mantê-lo em um arquivo JavaScript separado (vamos chamá-lo Library.js ). Gostaria de acessar os objetos de Library.js a partir de outro script (vamos chamar este user.js ).

Em essência, eu estou procurando algo semelhante ao C / C ++ "incluir" paradigma.

Existe uma maneira de implementar isso em javascript? (Lembre-se, este não é web-based)

Foi útil?

Solução

Esta página aqui é o mais próximo Eu poderia encontrar. Ele fala sobre arquivos .wsf que permitem combinar vários scripts (que podem ser escritos em linguagens diferentes) em um arquivo.

Para a sua pergunta deve ser algo como:

user.wsf

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

Pode haver maneiras melhores, mas eu não sou um especialista em WSH.

Outras dicas

Eu sei que isto é uma questão antiga e tem sido respondido e aceito.

Eu sei sobre arquivos .wsf e como eles funcionam; eles servem ao propósito.

No entanto, eu também achei útil para fazer a "inclusão" de dentro de um js puro arquivo que é executado em WSH. Aqui está a minha solução para isso.

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

Com essa função de utilidade definida, eu posso fazer isso de dentro de um módulo de javascript:

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

... e então eu posso invocar qualquer uma das funções ou agradar qualquer uma das variáveis ??definidas nesses módulos.

Uma técnica semelhante funciona com arquivos .vbs:
Como fazer Eu incluir um arquivo comum em VBScript (semelhante ao C # include)?

Você pode conseguir seu objetivo, utilizando o Windows Scripting Host em vez de um arquivo .js ou .vbs específicos. Mais informações podem ser encontradas em o site MSDN .

A partir do link:

arquivo de script do Windows (* .wsf) é um texto documento contendo Extensible Markup Language (XML) de código. incorpora várias características que lhe oferecem aumento da flexibilidade de scripting. Como os arquivos de script do Windows não são específicos do motor, que pode conter roteiro de qualquer script do Windows mecanismo de script compatível. Eles atuam como um recipiente.

Você faria cal lthe arquivo usando a mesma sintaxe como um arquivo .js e .vbs:

wscript.exe myScriptFile.wsf

ATUALIZADO: Correção observou ...

Talvez essa implementação phpjs poderia ajudar.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top