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"
],
}
