es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Node Require e Import.

importar path desde 'path';
importar fs desde 'fs';

fs.mkdirSync(path.join(__dirname, 'NombreDeLaCarpeta'));

Me gustaría crear directorios en Node. Cuando requiero los módulos (commonjs) todo funciona, pero cuando cambio el tipo en mi package.json a módulo y uso importaciones, no se crea la carpeta, ¿qué podría estar haciendo mal?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Cuando cambias a utilizar módulos ES6 en Node.js, el comportamiento de __dirname cambia. Al utilizar declaraciones import, __dirname se establecerá en el directorio de trabajo actual en lugar del directorio del módulo actual.

    Para solucionar este problema, puedes utilizar import.meta.url en lugar de __dirname para obtener la ruta de la ubicación del módulo actual:

    import path from 'path';
    import fs from 'fs';
    
    fs.mkdirSync(path.join(new URL('folderName', import.meta.url)));
    

    Esto debería crear el directorio folderName en el mismo directorio que el módulo actual.

Comments are closed.