我有一个打字稿模块@tlabs/models,在这里我只是在index.ts中导出:
export * from '../models......'
每个文件中都有类似的内容:
export const Project = typedModel('projects', ProjectSchema);
我唯一的依赖项是ts-mongoose
导入每个文件中,就像这样:
import { createSchema, Type, typedModel, ExtractProps } from 'ts-mongoose';
ts-mongoose是一个依赖项,它本身需要mongoose + mongoose类型。
在我的打字稿节点项目中,我将ts-mongoose
,mongoose
和@ tlabs / models作为依赖项,并将@types/mongoose
作为dev依赖项。
运行tsc很好,文件被编译并且没有错误被抛出,但是随后尝试运行实际文件被抛出:
Error: Cannot find module '@tlabs/models'
我已经多次重新安装了所有模块,并通过vscode检查了package.json以及磁盘上的实际文件,它们就在那里。
我错过了什么?
我的tsconfig是:
{
"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
}
}
答案 0 :(得分:0)
我导出的模型的最终TS配置:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "lib",
"strict": true,
"esModuleInterop": true
},
"include": ["src"]
}
和相关的package.json配置:
{
"main": "lib/index.js",
"types": "lib",
"scripts": {
"tsc": "tsc",
"build": "tsc -p ."
},
"files": [
"lib"
],
}