Quiero configurar el alias de la ruta de importación en un proyecto TypeScript/node/express SIN usar otros paquetes como tsconfig-paths y link-module-alias. Me gustaría hacer esto con la funcionalidad incorporada de nodejs (el alias de Typscript ya está hecho).
Básicamente:
// Change import { myFn } from '../../../utils'; // To import { myFn } from '#this/utils'; El rayo de esperanza que tengo es con las importaciones de rutas secundarias del nodo. En teoría, solo puedo agregar esto a mi package.json :
"imports": { "#this/*": "./dist/*" } Esto funciona para importar explícitamente los archivos *.js , pero falla para index.js implícito (es decir , Carpetas como módulos )
// Works import { myFn } from '#this/utils/index.js'; // Does not work import { myFn } from '#this/utils';Sin embargo, esperaría que el nodo resuelva la importación de esta manera:
*/utils/index.js*/utils.jsMi primer pensamiento sería actualizar las importaciones de package.json para incluir todas las posibilidades, pero esto no es compatible:
"imports": { "#this/*": [ "./dist/*", "./dist/*.js", "./dist/*/index.js" ] } La otra opción parece ser definir una entrada de exports para cada directorio, pero eso no es escalable.
Con --experimental-specifier-resolution=node , el siguiente código funciona para mí.
index.js:
import { myFn } from '#this'; package.json:
... "imports": { "#this": "./utils" } ...