d.ts 文件找不到模块 'rxjs/Observable'

d.ts files cannot find module 'rxjs/Observable'

我是 Angular2/4 的新手,我正在尝试构建一个更新 SQL table 的 WebAPI。问题是,当我在 Visual Studio 2015 中 运行 Build 函数时,我得到每个 "d.ts" 文件的错误代码 TS2307 "Cannot find module 'rxjs/Observable'"。当我单击错误时,它会将我发送到指定文件中的导入语句,错误位于“@rxjs/Observable”部分。

我找了几个小时试图找到解决方案,但没有找到符合情况的解决方案,所以如果我重复了某些内容,请在评论中添加 link 以便我查看.

如果您需要帮助任何其他文件,请告诉我。先感谢您。

以下是 VS15 的一些错误(尽可能多的在屏幕截图中): 这是我的 Package.json 文件:

   {
     "version": "1.0.0",
     "name": "asp.net",
     "private": true,
     "scripts": {
           "build": "webpack",
           "start": "static ."
           },
     "dependencies": {
           "@angular/core": "2.4.0",
           "@angular/common": "2.4.0",
           "@angular/compiler": "2.4.0",
           "@angular/platform-browser": "2.4.0",
           "@angular/platform-browser-dynamic": "2.4.0",
           "core-js": "^2.4.1",
           "zone.js": "^0.8.4",
           "rxjs": "^5.2.0",
           "reflect-metadata": "^0.1.10"
           },
     "devDependencies": {
          "gulp": "^3.9.1",
          "gulp-exec": "^2.1.3",
          "awesome-typescript-loader": "^3.1.2",
          "typings": "^2.1.0",
          "webpack": "^3.8.1",
          "ng2-bs3-modal": "0.10.4"
          }
      }

这是我的tsconfig.json

  {
   "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "lib": [ "es2015", "dom" ],
        "noImplicitAny": true,
        "suppressImplicitAnyIndexErrors": true
        }
   }

更新:1 如上所示,我检查并降低了 package.json 文件中的 angular 版本号。然后从项目中删除 node_module 并重新启动 VS15。然后我恢复了包,发现还有更多错误等待。

所以我希望新一批错误能帮助解决问题……

根据 @yms, I found the Quickstart file for the Angular2.4 的建议,将 package.json、tsconfig.jason 和 systemjs.config.js 复制到解决方案中。然后我阅读了自述文件,其中指出您必须从现在开始使用 angular/cli.. 所以我尝试使用以下命令安装它:

npm install -g @angular/cli

我的错误已减少为 "incorrectly extends" 错误,已通过将 typescript 版本推送到“^2.4.0”并将 rxjs 版本推送到 [=21= 中的“5.4.2”来修复] 文件,然后恢复包。

这是我的工作 Package.json:

{
"name": "angular-quickstart",
"version": "1.0.0",
"description": "QuickStart package.json from the documentation, supplemented 
with testing support",
"scripts": {
  "build": "tsc -p src/",
  "build:watch": "tsc -p src/ -w",
  "build:e2e": "tsc -p e2e/",
  "serve": "lite-server -c=bs-config.json",
  "serve:e2e": "lite-server -c=bs-config.e2e.json",
  "prestart": "npm run build",
  "start": "concurrently \"npm run build:watch\" \"npm run serve\"",
  "pree2e": "npm run build:e2e",
  "e2e": "concurrently \"npm run serve:e2e\" \"npm run protractor\" --kill-
   others --success first",
  "preprotractor": "webdriver-manager update",
  "protractor": "protractor protractor.config.js",
  "pretest": "npm run build",
  "test": "concurrently \"npm run build:watch\" \"karma start 
  karma.conf.js\"",
  "pretest:once": "npm run build",
  "test:once": "karma start karma.conf.js --single-run",
  "lint": "tslint ./src/**/*.ts -t verbose"
},
"keywords": [],
"author": "",
"license": "MIT",
"dependencies": {
  "@angular/common": "~2.4.0",
  "@angular/compiler": "~2.4.0",
  "@angular/core": "~2.4.0",
  "@angular/forms": "~2.4.0",
  "@angular/http": "~2.4.0",
  "@angular/platform-browser": "~2.4.0",
  "@angular/platform-browser-dynamic": "~2.4.0",
  "@angular/router": "~3.4.0",
  "angular-in-memory-web-api": "~0.2.4",
  "systemjs": "0.19.40",
  "core-js": "^2.4.1",
  "rxjs": "5.4.2",
  "zone.js": "^0.7.4"
},
"devDependencies": {
  "concurrently": "^3.2.0",
  "lite-server": "^2.2.2",
  "typescript": "^2.4.0",
  "canonical-path": "0.0.2",
  "tslint": "^3.15.1",
  "lodash": "^4.16.4",
  "jasmine-core": "~2.4.1",
  "karma": "^1.3.0",
  "karma-chrome-launcher": "^2.0.0",
  "karma-cli": "^1.0.1",
  "karma-jasmine": "^1.0.2",
  "karma-jasmine-html-reporter": "^0.2.2",
  "protractor": "~4.0.14",
  "rimraf": "^2.5.4",
  "@types/node": "^6.0.46",
  "@types/jasmine": "2.5.36"
},
"repository": {}
}

对于 MAC 我用以下方法解决了这个问题:

sudo npm install -g --unsafe-perm --verbose @angular/cli