Si hay un archivo de script java con algunas funciones y algunas variables y otro archivo de script java que quiere acceder a ellos o usarlos, ¿de qué manera puede hacerlo?
Tengo un archivo js con algo como digamos
const info = { get: function(){ console.log("Getting information") } }Y ahora digamos que quiero llamar a esa función en mi otro script js:
info.get()Sin embargo, no parece funcionar, como algunos señalaron, porque el primer script se ejecuta después del segundo, por lo que ese puede ser el problema.
Estoy usando node.js y js para ejecutar mi programa.
Otra forma en que podría hacerlo es manualmente , que consiste en convertir el script en una cadena con
fs.readfileSync("The path to the script");luego busque cada línea que lo contenga y luego ejecute una función. Eso podría funcionar, pero no será tan bueno cuando haya variables involucradas en la mezcla. Es por eso que pregunto si hay otra forma más adecuada para el uso a largo plazo.
Como mencioné, puede deberse a que el primer script se ejecuta después del segundo, y si es así... ¿cómo puedo ejecutarlo antes en el proyecto real? Podría combinarlo en un script completo, pero eso básicamente anula todo el punto de mi pregunta, que es ... ¿hay alguna forma de acceder a ellos en un archivo separado?
¿Podría requerirlo como una biblioteca?:
const firstScript=require("path to first script");De nuevo, no parece funcionar así. Intenté buscarlo en Google pero no apareció nada, todo era solo html.
Te dije un par de maneras en que traté de hacer las cosas, pero si alguien encuentra una forma mejor y más adecuada de hacer las cosas en lugar de solo .slice .indexOf, forma manual, por favor dímelo, me encantaría saber lo que encontraste.
¿Podría requerirlo como una biblioteca?:
const firstScript=require("path to first script");
Sí, exactamente, con una ruta relativa.
Por ejemplo, para su objeto de info , puede exportarlo así:
// ESM: export const info = /*...*/; // Or the older CommonJS exports.info = /*...*/;luego impórtelo así si los archivos están uno al lado del otro en el mismo directorio:
// ESM import { info } from "./firstScript.js"; // Or the older CommonJS const { info } = require("./firstScript.js");Entonces, por ejemplo, si los archivos están uno al lado del otro en el directorio:
En la parte ESM de ese ejemplo, he usado una exportación con nombre (también hay una exportación predeterminada ). Al importar una exportación con nombre, coloca el nombre en { } (posiblemente junto con otros que desee importar, separados por comas). (A pesar de la semejanza superficial con la desestructuración, la sintaxis de import no es una sintaxis de desestructuración; es solo una semejanza superficial en esa forma particular).
Lea acerca de los módulos aquí (para ESM) y aquí (para CommonJS) .