使用TypeScript Node + Express项目模块中的TypeScript文件的正确方法?当前抛出的错误:找不到模块

时间:2019-06-26 15:42:28

标签: node.js typescript mongoose node-modules

我有一个打字稿模块@tlabs/models,在这里我只是在index.ts中导出:

self

每个文件中都有类似的内容:

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

我唯一的依赖项是export const Project = typedModel('projects', ProjectSchema); 导入每个文件中,就像这样:

ts-mongoose

ts-mongoose是一个依赖项,它本身需要mongoose + mongoose类型。

在我的打字稿节点项目中,我将import { createSchema, Type, typedModel, ExtractProps } from 'ts-mongoose'; ts-mongoose和@ tlabs / models作为依赖项,并将mongoose作为dev依赖项。

运行tsc很好,文件被编译并且没有错误被抛出,但是随后尝试运行实际文件被抛出:

@types/mongoose

我已经多次重新安装了所有模块,并通过vscode检查了package.json以及磁盘上的实际文件,它们就在那里。

我错过了什么?

我的tsconfig是:

Error: Cannot find module '@tlabs/models'

在我的节点项目中使用/导入它的正确方法是什么?

1 个答案:

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