2016-05-12 24 views
6

Pracuję nad wersją angular2" 2.0.0-beta.17 ".angular2-jwt.d.ts wyświetla błąd "Nie można znaleźć modułu" @ kątowa/http "

Moja package.json jest następujący

"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" 
     } 

ale po budowanie mojego projektu dostaję następujący błąd:

ERROR in C:\Users\akhilesh.kumar\Desktop\ang17\node_modules\angular2-jwt\angular2-jwt.d.ts (1,61): error TS2307: Cannot find module '@angular/http'.

ERROR in ./~/angular2-jwt/angular2-jwt.js Module not found: Error: Cannot resolve module '@angular/core' in C:\Users\akhilesh.kumar\Desktop\ang17\node_modules\angular2-jwt @ ./~/angular2-jwt/angular2-jwt.js 11:13-37

ERROR in ./~/angular2-jwt/angular2-jwt.js Module not found: Error: Cannot resolve module '@angular/http' in C:\Users\akhilesh.kumar\Desktop\ang17\node_modules\angular2-jwt @ ./~/angular2-jwt/angular2-jwt.js 12:13-37

Odpowiedz

5

@angular/http jest dostępny tylko z wersjami RC Angular2. Przed nim był angular2/http.

Ponieważ biblioteka angular2-jwt wymaga modułu @angular/http, należy zaktualizować aplikację do wersji RC Angular2.

Do tego można zaktualizować pliku package.json i wykonać polecenie: npm install:

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

mogę obniżyć mój angular2-JWT gdzieś gdy używa angular2/http –

+0

Więc powinienem umieścić go w tylko moje package.json czy muszę zmienić mój projekt, jak również? Jeśli mam zamiar użyć wersji RC. –

+0

Nie wystarczy zmiana pliku 'pakiet.json' i uruchomienie' npm install'. Zaktualizowałem moją odpowiedź ... –

1

Thierry powiedział "@angular/... obsługiwane nowszej wersji kątowej następnie"^2.0.0- rc.0"

Więc zmieniłem zależności następująco:

"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" 
    }, 

i zmienił importu w następujący sposób:

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'; 

Zadziałało.

1

To może być problem z twoim npm, spróbuj zainstalować najnowszą wersję npm.

Linux: npm zainstalować -g npm @ LTS

1

Pośrednicy mają Http włączone domyślnie, w celu korzystania z HTTP w aplikacji trzeba będzie dodać HttpModule do 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() 
    ], 
... 
0
you need to add dependencies of angular2-jwt: 

npm install angular2-jwt --save 
Powiązane problemy