Búsqueda de sitios web

javascript - Resolviendo conflictos de importación absoluta


Digamos que tengo un archivo local llamado "util.ts". Con las importaciones absolutas habilitadas, puedo llamarlo en todas partes de mi aplicación.

import * as util from 'util'

Ahora imagina que hay un paquete llamado util en node_modules. Ese será importado en su lugar. ¿Hay alguna manera de especificar que quiero explícitamente mi módulo en lugar del que está en node_modules?

Respuesta #1

referencia: https://github.com/facebook/create-react-app/issues/7795

Intentar

{
  "compilerOptions":  {
    ...    
    "baseUrl": "."
  }
}

y anteponga a sus importaciones "src/", como en "src/util".

Me encontré con exactamente el mismo problema al querer usar un archivo en mi directorio src llamado 'util.ts'. Sin embargo, resulta que los módulos de node siempre prevalecen en casos de colisión de nombres. El enlace del problema en GitHub mencionado arriba hace referencia a una posible solución: cambia tu baseUrl en tsconfig a '.' y, para tus importaciones absolutas, préfixalas con 'src', así 'src/util'.

Sospecho que puedes usar los 'paths' de tsconfig para aliasar cosas o evitar tener que escribir 'src' en otros casos, pero no he explorado mucho esa ruta ya que en realidad estoy bien con prefijar mis importaciones absolutas con 'src'.

Referencia de rutas: https://www.typescriptlang.org/tsconfig#paths

Respuesta #2

Haz que la importación vaya a la ruta de los archivos en lugar de import * as util from "/main/utilities/util.js" - Ejemplo

Artículos relacionados