node.js - Správný způsob použití TypeScript souborů z modulů v TypeScript Node+Express projektu? Momentálně vyhazuje chybu Error: Cannot find module
Mám modul TypeScript @tlabs/models, kde v souboru index.ts jednoduše exportuji:
export * from '../models......'
kde v každém souboru mám něco jako:
export const Project = typedModel('projects', ProjectSchema);
a jedinou mojí závislostí je ts-mongoose, importovaná v každém souboru jednoduše takto:
import { createSchema, Type, typedModel, ExtractProps } from 'ts-mongoose';
ts-mongoose je závislost, která sama vyžadovala mongoose + mongoose typy.
V mém projektu typu TypeScript pro Node mám jako závislosti ts-mongoose, mongoose a @tlabs/models a @types/mongoose jako vývojovou závislost.
Spuštění tsc je v pořádku, soubory se zkompilují a žádná chyba není vyhozena, ale při pokusu o spuštění samotných souborů se objeví:
Error: Cannot find module '@tlabs/models'
Všechny moduly jsem přeinstaloval několikrát a zkontroloval jsem package.json stejně jako skutečné soubory na disku + přes VSCode a jsou tam přímo.
O co přicházím?
Můj tsconfig je:
{
"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
}
}
Jaký je správný způsob používání/importování toho v mém node projektu?
Odpověď č. 1
Moje konečná konfigurace TS:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "lib",
"strict": true,
"esModuleInterop": true
},
"include": ["src"]
}
a příslušná konfigurace souboru package.json:
{
"main": "lib/index.js",
"types": "lib",
"scripts": {
"tsc": "tsc",
"build": "tsc -p ."
},
"files": [
"lib"
],
}
