node.js - Eroare Node: Nu se poate găsi modulul - API TypeScript pentru modulul personalizat unde export schemele și interfețele Mongoose
Am un modul TypeScript @tlabs/models în care export pur și simplu în index.ts:
export * from '../models......'
unde în fiecare fișier am ceva de genul:
export const Project = typedModel('projects', ProjectSchema);
și singura mea dependență este ts-mongoose importată în fiecare fișier simplu ca:
import { createSchema, Type, typedModel, ExtractProps } from 'ts-mongoose';
ts-mongoose fiind o dependență care însăși necesita mongoose + tipurile mongoose.
În proiectul meu TypeScript Node am ts-mongoose, mongoose și @tlabs/models ca dependențe și @types/mongoose ca dependență de dezvoltare.
Rularea tsc este în regulă, fișierele sunt compilate și nu apare nici o eroare, dar apoi încercarea de a rula fișierele propriu-zise generează:
Error: Cannot find module '@tlabs/models'
Am reinstalat toate modulele de mai multe ori și am verificat fișierul package.json, precum și fișierele reale de pe disc + prin vscode și sunt exact acolo.
Ce pierd eu?
Fișierul meu tsconfig este:
{
"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
}
}
Răspuns #1
Configurarea mea finală TS pentru modelele mele exportate:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "lib",
"strict": true,
"esModuleInterop": true
},
"include": ["src"]
}
și configurația relevantă a fișierului package.json:
{
"main": "lib/index.js",
"types": "lib",
"scripts": {
"tsc": "tsc",
"build": "tsc -p ."
},
"files": [
"lib"
],
}
