DefinitelyTyped Typescript 定义无法识别 mongoose 依赖项
DefinitelyTyped Typescript Definition doesn't recognize mongoose dependencies
我正在使用 TypeScript、Angular 2 和猫鼬。我使用 NPM 安装了猫鼬:
"dependencies": {
"@angular/common": "2.0.0-rc.6",
"@angular/compiler": "2.0.0-rc.6",
"@angular/core": "2.0.0-rc.6",
"@angular/forms": "2.0.0-rc.6",
"@angular/http": "2.0.0-rc.6",
"@angular/platform-browser": "2.0.0-rc.6",
"@angular/platform-browser-dynamic": "2.0.0-rc.6",
"@angular/router": "3.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.6",
"body-parser": "^1.15.2",
"bootstrap": "^3.3.6",
"core-js": "^2.4.1",
"express": "^4.13.4",
"jquery": "^3.1.0",
"mongoose": "^4.6.0",
"morgan": "^1.7.0",
"path": "^0.12.7",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.11",
"systemjs": "0.19.27",
"typescript": "^2.0.0",
"typings": "^1.3.2",
"zone.js": "^0.6.17"
},
"devDependencies": {
"jasmine-core": "^2.5.1",
"karma": "^1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-firefox-launcher": "^1.0.0",
"karma-jasmine": "^1.0.2"
}
当然,mongoose 安装 mongodb 作为依赖项。然后我使用安装猫鼬索引文件的命令 typipngs install dt~mongoose --global --save.
安装了猫鼬 DefintielyTyped 定义:
// Generated by typings
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/51c51f03549a63f8791865bf26480947e22f4902/mongoose/mongoose.d.ts
declare module "mongoose" {
import events = require('events');
import mongodb = require('mongodb');
import stream = require('stream');
import mongoose = require('mongoose');
等等,等等。当我运行 tsc
时,我得到以下错误:typings/globals/mongoose/index.d.ts(5,28): error TS2307: Cannot find module 'mongodb'
。 npm install mongodb --save
感觉不对,因为它已经安装了 mongoose。
解决这个问题的正确方法是什么?
它不是要求您安装模块,而是要求您安装 mongodb
的类型。默认情况下,类型不安装依赖类型。所以你必须手动完成并安装每个依赖项。
特别是对于 Mongoose,您将需要 mongodb
、mpromise
和 mongoose-promise
的类型(我认为这是所有类型)。
我正在使用 TypeScript、Angular 2 和猫鼬。我使用 NPM 安装了猫鼬:
"dependencies": {
"@angular/common": "2.0.0-rc.6",
"@angular/compiler": "2.0.0-rc.6",
"@angular/core": "2.0.0-rc.6",
"@angular/forms": "2.0.0-rc.6",
"@angular/http": "2.0.0-rc.6",
"@angular/platform-browser": "2.0.0-rc.6",
"@angular/platform-browser-dynamic": "2.0.0-rc.6",
"@angular/router": "3.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.6",
"body-parser": "^1.15.2",
"bootstrap": "^3.3.6",
"core-js": "^2.4.1",
"express": "^4.13.4",
"jquery": "^3.1.0",
"mongoose": "^4.6.0",
"morgan": "^1.7.0",
"path": "^0.12.7",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.11",
"systemjs": "0.19.27",
"typescript": "^2.0.0",
"typings": "^1.3.2",
"zone.js": "^0.6.17"
},
"devDependencies": {
"jasmine-core": "^2.5.1",
"karma": "^1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-firefox-launcher": "^1.0.0",
"karma-jasmine": "^1.0.2"
}
当然,mongoose 安装 mongodb 作为依赖项。然后我使用安装猫鼬索引文件的命令 typipngs install dt~mongoose --global --save.
安装了猫鼬 DefintielyTyped 定义:
// Generated by typings
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/51c51f03549a63f8791865bf26480947e22f4902/mongoose/mongoose.d.ts
declare module "mongoose" {
import events = require('events');
import mongodb = require('mongodb');
import stream = require('stream');
import mongoose = require('mongoose');
等等,等等。当我运行 tsc
时,我得到以下错误:typings/globals/mongoose/index.d.ts(5,28): error TS2307: Cannot find module 'mongodb'
。 npm install mongodb --save
感觉不对,因为它已经安装了 mongoose。
解决这个问题的正确方法是什么?
它不是要求您安装模块,而是要求您安装 mongodb
的类型。默认情况下,类型不安装依赖类型。所以你必须手动完成并安装每个依赖项。
特别是对于 Mongoose,您将需要 mongodb
、mpromise
和 mongoose-promise
的类型(我认为这是所有类型)。