node.js - typescript node+express projesinde modüllerden typescript dosyalarını doğru kullanma yolu? şu anda Hata veriyor: Modül bulunamıyor


Benim @tlabs/models adında bir TypeScript modülüm var ve index.ts içinde basitçe şu şekilde dışa aktarıyorum:

export * from '../models......'

her dosyada şöyle bir şeyim var:

export const Project = typedModel('projects', ProjectSchema);

ve tek bağımlılığım her dosyada basitçe şöyle içe aktarılan ts-mongoose:

import { createSchema, Type, typedModel, ExtractProps } from 'ts-mongoose';

ts-mongoose, kendisi mongoose ve mongoose tiplerini gerektiren bir bağımlılıktır.

Typescript node projemde bağımlılıklar olarak ts-mongoose, mongoose ve @tlabs/models var, geliştirme bağımlılığı olarak ise @types/mongoose bulunuyor.

tsc'yi çalıştırmak sorun değil, dosyalar derleniyor ve herhangi bir hata meydana gelmiyor ama sonra gerçek dosyaları çalıştırmaya çalışmak şunu veriyor:

Error: Cannot find module '@tlabs/models'

Tüm modülleri birkaç kez yeniden yükledim ve package.json ile disk üzerindeki gerçek dosyaları ve vscode üzerinden de kontrol ettim ve hepsi orada.

Nelerden mahrum kalıyorum?

Benim tsconfig dosyam şunlardır:

{
  "include": ["src/**/*"],
  "exclude": ["node_modules", "./node_modules", "./node_modules/*"],
  "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "es6",
    "allowJs": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist",
    "noImplicitAny": false,
    "alwaysStrict": true,
    "strictNullChecks": true,
    "types": [],
    "lib": [],
    "experimentalDecorators": true
  }
}

Node projemde bunu kullanmanın/içe aktarmanın doğru yolu nedir?

Cevap #1

Benim son TS yapılandırmam:

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "declaration": true,
        "declarationMap": true,
        "sourceMap": true,
        "outDir": "lib",
        "strict": true,
        "esModuleInterop": true
    },
    "include": ["src"]
}

ve ilgili package.json yapılandırması:

{
    "main": "lib/index.js",
    "types": "lib",
    "scripts": {
        "tsc": "tsc",
        "build": "tsc -p ."
    },
    "files": [
        "lib"
    ],
}