首页 文章

angular2-jwt.d.ts给出“找不到模块'@ angular / http”错误

提问于
浏览
7

我正在研究angular2“2.0.0-beta.17” .

我的package.json如下

"dependencies": {
        "angular2": "2.0.0-beta.17",
        "es6-shim": "^0.35.0",
        "reflect-metadata": "0.1.2",
        "rxjs": "5.0.0-beta.6",
        "zone.js": "0.6.12",    
        "angular2-jwt":"0.1.15",
        "es6-promise": "^3.2.1",
        "jwt-decode": "^2.0.1"    
      },
      "devDependencies": {
        "angular-cli": "0.0.*",
        "autoprefixer": "^6.3.2",
        "copy-webpack-plugin": "^1.1.1",
        "css-loader": "^0.23.0",
        "extract-text-webpack-plugin": "^1.0.1",
        "file-loader": "^0.8.4",
        "html-loader": "^0.4.0",
        "html-webpack-plugin": "^2.8.1",
        "istanbul-instrumenter-loader": "^0.1.3",
        "jasmine-core": "^2.3.4",
        "jasmine-spec-reporter": "^2.4.0",
        "json-loader": "^0.5.3",
        "karma": "0.13.19",
        "karma-chrome-launcher": "^0.2.1",
        "karma-coverage": "^0.5.2",
        "karma-jasmine": "^0.3.7",
        "karma-phantomjs-launcher": "^1.0.0",
        "karma-sourcemap-loader": "^0.3.7",
        "karma-webpack": "1.7.0",
        "node-sass": "^3.4.2",
        "null-loader": "git+https://github.com/webpack/null-loader.git",
        "phantomjs-prebuilt": "^2.1.4",
        "postcss-loader": "^0.8.0",
        "protractor": "^3.1.1",
        "raw-loader": "0.5.1",
        "rimraf": "^2.5.1",
        "sass-loader": "^3.1.2",
        "style-loader": "^0.13.0",
        "ts-loader": "^0.8.1",
        "tslint": "^3.4.0",
        "tslint-loader": "^2.1.0",
        "typedoc": "^0.3.12",
        "typescript": "^1.8.0",
        "typings": "^0.7.12",
        "url-loader": "^0.5.6",
        "webpack": "^1.12.13",
        "webpack-dev-server": "^1.14.1",
        "exports-loader": "^0.6.3",
        "expose-loader": "^0.7.1",
        "imports-loader": "^0.6.5",
        "tsconfig-lint": "^0.7.0"
      }

但在构建我的项目后,我得到以下错误:

C:\ Users \ akhilesh.kumar \ Desktop \ ang17 \ node_modules \ angular2-jwt \ angular2-jwt.d.ts(1,61)中的错误:错误TS2307:找不到模块'@ angular / http' . 错误在./~/angular2-jwt/angular2-jwt.js找不到模块:错误:无法在C:\ Users \ akhilesh.kumar \ Desktop \ ang17 \ node_modules \ angular2-jwt @中解析模块'@ angular / core' ./~/angular2-jwt/angular2-jwt.js 11:13-37 ERROR in ./~/angular2-jwt/angular2-jwt.js找不到模块:错误:无法在C中解析模块'@ angular / http' :\ Users \ akhilesh.kumar \ Desktop \ ang17 \ node_modules \ angular2-jwt @ ./~/angular2-jwt/angular2-jwt.js 12:13-37

8 回答

  • 6

    @angular/http 仅适用于Angular2的RC版本 . 之前是 angular2/http .

    由于angular2-jwt库需要 @angular/http 模块,因此您需要将应用程序升级到Angular2的RC版本 .

    为此,您可以更新 package.json 文件并执行命令: npm install

    "dependencies": {
       "@angular": "2.0.0-rc.1",
       (...)
    }
    
  • 1

    你需要添加angular2-jwt的依赖项:

    npm install angular2-jwt --save
    
  • 1

    正如Thierry所说“ @angular/... 支持更高版本的角度然后"^2.0.0-rc.0"

    所以我更改了依赖项如下:

    "dependencies": {
        "@angular/common": "^2.0.0-rc.1",
        "@angular/compiler": "^2.0.0-rc.1",
        "@angular/core": "^2.0.0-rc.1",
        "@angular/http": "^2.0.0-rc.1",
        "@angular/platform-browser": "^2.0.0-rc.1",
        "@angular/platform-browser-dynamic": "^2.0.0-rc.1",
        "@angular/platform-server": "^2.0.0-rc.1",
        "@angular/router-deprecated": "^2.0.0-rc.1",
        "angular2-jwt": "0.1.15",
        "es6-promise": "^3.2.1",
        "es6-shim": "^0.35.0",
        "jwt-decode": "^2.0.1",
        "reflect-metadata": "0.1.2",
        "rxjs": "^5.0.0-beta.6",
        "zone.js": "^0.6.12"
      },
    

    并改变了进口如下

    import {enableProdMode, provide} from "@angular/core";
    import {ELEMENT_PROBE_PROVIDERS} from '@angular/platform-browser';
    import {bootstrap} from '@angular/platform-browser-dynamic';
    import {ROUTER_PROVIDERS} from '@angular/router-deprecated';
    import {Http,HTTP_PROVIDERS} from '@angular/http';
    import { AuthConfig, AuthHttp } from 'angular2-jwt';
    

    有效 .

  • 4

    默认情况下,提供程序包含Http,为了在您的应用程序中使用Http,您需要将HttpModule添加到app.module.ts:

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule, ErrorHandler } from '@angular/core';
    import { HttpModule } from '@angular/http';
    ...
      imports: [
        BrowserModule,
        HttpModule,
        IonicModule.forRoot(MyApp),
        IonicStorageModule.forRoot()
      ],
    ...
    
  • 1

    try this:

    npm install @angular/http@latest
    
  • 1

    你的npm可能有问题,尝试安装最新版本的npm .

    Linux的:

    npm install -g npm@lts
    
  • 0

    这是我的角度和节点配置: -

    Angular CLI:7.1.4,节点:10.6.0,Angular:7.1.4

    我修好了

    angular2-jwt.d.ts给出“无法找到模块'@ angular / http”错误

    运用

    npm i @angular/http@^2.0.0||^4.0.0  --save
    
  • 0

    在角度7中,我们使用 HttpClient 而不是Http

    您可以像这样导入它

    import { HttpClient } from '@angular/common/http';
    

相关问题