Quiero ejecutar varios códigos antes de que se ejecute el código dentro de la sintaxis de import .
Ejemplo
file-1.js
console.log('Inside File 1') import './file-2.js' file-2.js
console.log('Inside File 2')Producción
Inside File 2 Inside File 1El resultado que esperaba
Inside File 1 Inside File 2Medioambiente
Nodo JS v12.19.0 con configuración de Módulo
Caso real
archivo-1.js
process.env.SHARED_DATA = 'Hello world' import './file-2.js'archivo-2.js
console.log(process.env.SHARED_DATA)Producción
undefinedPuede definir los datos env en un archivo separado. La sintaxis de import se ejecutará en el orden con respecto a las otras importaciones como dice @loganfsmyth .
Ejemplo
main.js
console.log('Inside main.js file') import './set-env.js' import './file.js' set-env.js
console.log('Inside set-env.js file') process.env.SHARED_DATA = 'Hello world' file.js
console.log(process.env.SHARED_DATA)Producción
Inside set-env.js file Hello world Inside main.js fileEn JavaScript, las líneas no necesariamente esperan a que la línea finalice. Una forma de resolver este problema tuyo es poner el archivo-1.js en una función asíncrona:
async function f() { process.env.SHARED_DATA = "Hello world"; return Promise.resolve(1); } f().then(() => {import "./file-2.js"});Al llamar a esta función, puede asegurarse de que la importación espere a que finalice la función f. Luego ejecutando la función de flecha. Espero que esto haya ayudado si quieres leer más sobre este tema aquí tienes. https://javascript.info/async-await