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

2.3K
Visualizações
'La importación de directorios no es compatible con la resolución de módulos ES' con Node.js

Estoy usando Node.js v14.13.0 .

archivo app.js :

 import database from './database'; database();

archivo base de datos/index.js :

 import mongoose from 'mongoose'; export default connect = async () => { try { await mongoose.connect('...', { }); } catch (error) {} };

En package.json agregué "type": "module" .

Después de ejecutar la aplicación me sale el siguiente error:

Error [ERR_UNSUPPORTED_DIR_IMPORT]: la importación de directorios '/Users/xx/Desktop/Projects/node-starter/src/database' no es compatible con la resolución de módulos ES importados desde /Users/xx/Desktop/Projects/node-starter/src/app. js

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

La respuesta de TValidator es algo correcta, puede usar babel para resolver este problema.
Sin embargo, debe instalar @babel/core, @babel/node, @babel/preset-env.
Y, debes hacer babel.config.json como a continuación;

 { "presets": ["@babel/preset-env"] }

Debe permanecer babel.config.json en la carpeta raíz de su proyecto.
Ahora, no tiene que configurar "tipo": "módulo" en el paquete.json.

over 4 years ago · Santiago Trujillo Relatório

0

Lo que sucede aquí es que Node exige el uso de una extensión en declaraciones de import y también establece,

Los índices de directorio (p. ej './startup/index.js' ) también deben especificarse por completo.

Su import database from './database'; declaración no especifica el index.js . Puede agregar index.js como se sugiere en otra respuesta, pero ese enfoque no se ve elegante en los proyectos de TypeScript , cuando terminaría importando un archivo .js desde uno .ts .

Puede cambiar el comportamiento de resolución de esta extensión de nodo pasando la --experimental-specifier-resolution=node . Esto funcionará y mantendrá su código sin cambios:

aplicación.js

 import database from './database'; database();

Ejecutar como: node --experimental-specifier-resolution=node app.js .

Un desarrollador de Node admitió que la documentación no era tan clara .

over 4 years ago · Santiago Trujillo Relatório

0

Con los módulos ES6 no puede (¿todavía?) importar directorios. Su importación debería verse así:

 import database from "./database/index.js"
over 4 years ago · Santiago Trujillo Relatório

0

De acuerdo con la documentación de nodejs, las importaciones de directorios no funcionan

over 4 years ago · Santiago Trujillo Relatório

0

Puedes usar babel. Utilicé la siguiente biblioteca de babel en el proyecto de nodo y todas las funciones de ES6 funcionan correctamente.

 "devDependencies": { "babel-cli": "^6.26.0", "babel-plugin-transform-class-properties": "^6.24.1", "babel-preset-env": "^1.6.1" }

Aunque puede ser una versión antigua, puede usar la última versión.

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