Búsqueda de sitios web

tsconfig - Resolución de módulos de Typescript no funciona


En lugar de importaciones de módulos relativas, me gustaría importar mis módulos así: import { IntHelper } from 'utils/IntHelper';. Aunque IntelliSense funciona bien en VSCode, los archivos de JavaScript transpilados lanzan una excepción: No se puede encontrar el módulo.

La estructura de mi proyecto:

raíz

  • dist
  • src

    • MiProyecto.ts
    • utilidades

      • IntHelper.ts
  • tsconfig.json

Archivo: MyProject.ts

import { IntHelper } from 'utils/IntHelper';

Archivo: IntHelper.ts

export module IntHelper {
  export const xy: string = 'Test';
  export function crossSum(int: number) {
    return int; // Nonsense - ofcourse.
  }
}

Tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "noImplicitAny": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
        "*": [
            "*",
            "src/*"
        ]
    }
  }
}

Mi pregunta:

¿Por qué lanza la excepción de módulo no encontrado en los archivos de JavaScript aunque parezca estar bien en los archivos de TypeScript? Cuando paso el cursor sobre la parte 'utils/IntHelper' en mi línea de importación en el archivo de TypeScript, VSCode también mostrará la ruta correcta a ese módulo.

Respuesta #1

Estás teniendo el mismo problema que muchos otros, la creencia de que el compilador de TypeScript guardará las rutas resueltas a los archivos JS. Ese no es el caso. Necesitarás resolver esto por tu cuenta, o utilizando una herramienta, WebPack es a menudo lo que la gente sugiere (sin embargo, WebPack es un monstruo), por favor, vea esta respuesta:

Resolución de módulos de ruta en Typescript2

¡Esto muy probablemente también resolverá tu problema!

Artículos relacionados