【问题标题】:d.ts files cannot find module 'rxjs/Observable'd.ts 文件找不到模块 'rxjs/Observable'
【发布时间】:2017-11-15 16:29:32
【问题描述】:

我对 Angular2/4 很陌生,我正在尝试构建一个更新 SQL 表的 WebAPI。问题是,当我在 Visual Studio 2015 中运行 Build 函数时,每个“d.ts”文件都会出现错误代码 TS2307“找不到模块 'rxjs/Observable'”。当我点击错误时,它会将我发送到指定文件中的 Import 语句,错误位于“@rxjs/Observable”部分下。

我已经寻找了几个小时试图找到解决方案,但没有找到与情况相匹配的解决方案,因此如果我复制了某些内容,请在 cmets 中放置一个链接,以便我查看。

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

以下是 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 文件中的角度版本号。然后从项目中删除node_module并重新启动VS15。然后我恢复了软件包以发现更多错误等待。

所以我希望新的一批错误有助于解决问题......

【问题讨论】:

  • 请检查stackoverflow.com/questions/42750266/… 也试试 npm install rxjs
  • 你是这样导入的吗: import { Observable } from 'rxjs/Rx' 这对我总是有用的。
  • 不,你不应该。您的项目配置大多有问题,这些文件应该“按原样”工作。
  • Angular 5 才刚刚诞生几天......也许你应该坚持使用 Angular 4 一段时间:)

标签: angular visual-studio-2015 asp.net-web-api2 rxjs


【解决方案1】:

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

npm install -g @angular/cli

我的错误被简化为“错误扩展”错误,通过将 typescript 版本推送到 package.json 文件中的“^2.4.0”并将 rxjs 版本推送到“5.4.2”然后恢复包。

这是我的工作包.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": {}
}

【讨论】:

    【解决方案2】:

    对于 MAC,我解决了这个问题:

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

    【讨论】:

      猜你喜欢
      • 2019-01-12
      • 2019-02-22
      • 1970-01-01
      • 2022-07-26
      • 2018-11-13
      • 2021-07-24
      • 2019-03-06
      • 2016-08-10
      • 2021-10-21
      相关资源
      最近更新 更多