Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

416
Visualizações
¿Nombre de importación de variable ES6 en node.js?

¿Es posible importar algo en el módulo que proporcione el nombre de la variable mientras se usa la importación ES6?

Es decir, quiero importar algún módulo en tiempo de ejecución según los valores proporcionados en una configuración:

 import something from './utils/' + variableName;
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

No con la declaración de import . import y export se definen de tal manera que son analizables estáticamente, por lo que no pueden depender de la información de tiempo de ejecución.

Está buscando la API del cargador (polyfill) , pero no tengo claro el estado de la especificación:

 System.import('./utils/' + variableName).then(function(m) { console.log(m); });
over 4 years ago · Santiago Trujillo Relatório

0

Si bien esto no es realmente una importación dinámica (por ejemplo, en mi caso, todos los archivos que estoy importando a continuación serán importados y agrupados por webpack, no seleccionados en tiempo de ejecución), un patrón que he estado usando que puede ayudar en algunas circunstancias es :

 import Template1 from './Template1.js'; import Template2 from './Template2.js'; const templates = { Template1, Template2 }; export function getTemplate (name) { return templates[name]; }

o alternativamente:

 // index.js export { default as Template1 } from './Template1'; export { default as Template2 } from './Template2'; // OtherComponent.js import * as templates from './index.js' ... // handy to be able to fall back to a default! return templates[name] || templates.Template1;

No creo que pueda volver a un valor predeterminado tan fácilmente con require() , que arroja un error si intento importar una ruta de plantilla construida que no existe.

Se pueden encontrar buenos ejemplos y comparaciones entre require e import aquí: http://www.2ality.com/2014/09/es6-modules-final.html

Excelente documentación sobre reexportación de @iainastacio: http://exploringjs.com/es6/ch_modules.html#sec_all-exporting-styles

Me interesa escuchar comentarios sobre este enfoque :)

over 4 years ago · Santiago Trujillo Relatório

0

Hay una nueva especificación que se llama importación dinámica para módulos ES. Básicamente, solo llama a import('./path/file.js') y está listo para comenzar. La función devuelve una promesa, que resuelve con el módulo si la importación fue exitosa.

 async function importModule() { try { const module = await import('./path/module.js'); } catch (error) { console.error('import failed'); } }

casos de uso

Los casos de uso incluyen la importación de componentes basados en rutas para React, Vue, etc. y la capacidad de cargar módulos de forma diferida , una vez que se requieren durante el tiempo de ejecución.

Más información

Aquí hay una explicación en Google Developers .

Compatibilidad del navegador (abril de 2020)

Según MDN , es compatible con todos los principales navegadores actuales (excepto IE) y caniuse.com muestra un 87 % de compatibilidad en toda la cuota de mercado global. Nuevamente, no hay soporte en IE o Edge sin cromo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda