Entonces, después de investigar un poco las diferencias de Exportación e Importación declaradas del archivo package.json, me preguntaba cuál es el mejor caso de uso para ambos.
Por ejemplo los siguientes campos:
"name": "node-api", "exports": { ".": "./application.js", "./config/*": "./config/*.js", "./controllers": "./controllers/index.js", "./helpers/*": "./helpers/*.js", "./models": "./models/index.js", "./routes": "./routes/index.js" }, "imports": { "#config/*": "./config/*.js", "#controllers": "./controllers/index.js", "#helpers/*": "./helpers/*.js", "#models": "./models/index.js", "#routes": "./routes/index.js" }Y luego cada uno de los siguientes con su salida en el archivo JS principal:
import routes from './routes/index.js'; // works import routes from './routes'; // error - ERR_UNSUPPORTED_DIR_IMPORT import routes from 'node-api/routes'; // works (with the package name) import routes from '#routes'; // works (without the package name but need the #)Entonces, ¿por qué no usar simplemente el campo de importaciones?
En mi opinión, parece más amigable que escribir el nombre de su paquete cada vez que quiera importar su propio archivo.
Según los documentos oficiales de NODE JS ( https://nodejs.org/api/packages.html ), dice lo siguiente: "El campo "exportaciones" permite definir los puntos de entrada de un paquete cuando se importa por nombre cargado a través de node_modules búsqueda o una autorreferencia a su propio nombre". .
Luego, para el campo de importaciones , dice lo siguiente: "es posible definir mapas de importación de paquetes internos que solo se aplican a los especificadores de importación desde dentro del propio paquete".
Desde mis pruebas para hacer referencia a mis archivos relativos (mis propios creados), solo uso el campo de importaciones para no tener que escribir el paquete para cada importación que desee.
En pocas palabras, ¿cuándo es mejor usar el campo de exportaciones e importaciones y, en mi caso, tiene sentido usar solo las importaciones ?