Búsqueda de sitios web

typescript3.0 - Error "No se puede encontrar el módulo" al usar Referencias de Proyecto de TypeScript 3


Estoy intentando hacer que las referencias de proyecto de TypeScript 3 funcionen, pero tengo problemas para importar una función de un proyecto referenciado.

Tengo un ProjectA que hace referencia a Shared. Aquí está la estructura de archivos:

ProjectA
|_ src
|     |_person.ts
|_ tsconfig.json
|
Shared
|_ src
      |_utils.ts
|_ tsconfig.json

Aquí está utils.ts:

export function guid() {
  return "a guid";
}

Aquí está Shared/tsconfig.json:

{
  "compilerOptions": {
    "composite": true,
    "declaration": true,

    "target": "es5",
    "outDir": "dist",
    "module": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "noImplicitReturns": true,
    "noImplicitAny": true
  },
  "include": ["src/**/*"]
}

Aquí está ProjectA/tsconfig.json:

{
  "compilerOptions": {
    "composite": true,
    "declaration": true,

    "target": "es5",
    "outDir": "dist",
    "module": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "noImplicitReturns": true,
    "noImplicitAny": true
  },
  "include": ["src/**/*"],
  "references": [{ "path": "../shared" }]
}

Aquí está el archivo con problemas - person.ts:

import { guid } from "../../Shared";

class Person {
  id: string;
  name: string;
  constructor() {
    this.id = guid();
  }
}

El compilador de TS muestra un error con "No se puede encontrar el módulo '../../Shared'"

¿Qué estoy haciendo mal al intentar importar la función guid? Cualquier ayuda sería apreciada

Respuesta #1

Necesitas usar la ruta relativa completa al archivo del que estás importando, tal como lo harías si el archivo estuviera en el mismo proyecto:

import { guid } from "../../Shared/src/utils";

Artículos relacionados