使用 tsc 构建时出现连接 mongo 错误:找不到模块 'mongoose'

connect-mongo error while building with tsc: Cannot find module 'mongoose'

我正在使用 connect-mongo 直接使用 mongodb 驱动程序将会话存储在打字稿项目中,而不使用 moongose。 我用 clientPromise 初始化它如下:

const store = new MongoStore({
    clientPromise: getMongoPromise(),
    collection: config.get('sessionCollection'),
    touchAfter: 24 * 3600,
    ttl: Number(config.get('sessionDuration')) * 24 * 3600,
});

当我 运行 我的应用程序处于开发模式(使用 ts-node --transpile-only src/start.ts)时一切正常,但是当我尝试使用 tsc 编译它时它给了我这个错误:

$ tsc
node_modules/connect-mongo/src/types.d.ts(11,27): error TS2307: Cannot find module 'mongoose'.
error Command failed with exit code 2.

我没有在我的应用程序中使用 moongose,所以我不想安装它只是为了消除这个错误。 还有其他方法可以解决吗?

谢谢!

mongoose 必须安装在生产依赖项中 npm i --save mongoose for typescript

并且不在 devDependencies 中 npm i --save-dev mongoose

其实我找到了,我缺少 @types/connect-mongo 开发包。我相信 VSCode 没有警告我缺少类型,但我错了。

安装后编译运行正常:

yarn add -D @types/connect-mongo