2016-05-12 36 views
6

Sto lavorando su angular2 "2.0.0-beta.17".angular2-jwt.d.ts fornisce "Impossibile trovare il modulo '@ angolare/http" Errore

mio package.json è la seguente

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

Ma dopo aver costruito il mio progetto ottengo l'errore seguente:

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

risposta

5

Il @angular/http è disponibile solo dalle versioni RC di Angular2. Prima era angular2/http.

Poiché la libreria angular2-jwt richiede il modulo @angular/http, è necessario aggiornare l'applicazione a una versione RC di Angular2.

Per questo si può aggiornare il file package.json ed eseguire il comando: npm install:

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

Posso declassare il mio angular2-JWT da qualche parte quando si utilizza angular2/http –

+0

così dovrebbe devo mettere in solo il mio package.json o ho bisogno di cambiare il mio progetto come bene? Se userò la versione RC. –

+0

Non è sufficiente modificare il file 'package.json' ed eseguire' npm install'. Ho aggiornato la mia risposta ... –

1

Come Thierry ha detto "@angular/... supportato versione successiva di angolare poi"^2.0.0- rc.0"

Così ho cambiato il dipendenze come segue:

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

e cambiato le importazioni come segue

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

Ha funzionato.

1

Potrebbe essere un problema con il tuo npm, prova a installare l'ultima versione di npm.

Linux: NPM installare -g npm @ LTS

1

fornitori hanno Http incluso di default, e al fine di utilizzare HTTP nella vostra applicazione è necessario aggiungere il HttpModule ai tuoi 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 
Problemi correlati