2016-01-20 81 views
0

此應用程序使用jspm for javascript模塊加載,所以所有的angular2 typescript定義文件都在jspm_modules文件夾中。我得到的錯誤,Typescript無法找到模塊'angular/core','angular/route','angular/http'等。我在VS 2015編輯器中遇到了錯誤,當我運行我的構建版本時,使用gulp-typingcript 。我想,也許是因爲我有我的tsconfig.json jspm_packages:Typescript Angular2錯誤找不到模塊angular/x

{ 
    "version": 3, 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "wwwroot/jspm_packages", 
    "wwwroot/app" 
    ] 
} 

但是,如果我去掉那行,我得到各類重名的錯誤。我試着按照其他類似問題的建議編輯我的xproj文件,但無濟於事。任何想法如何解決這個問題?

enter image description here

的源代碼可在github。

https://github.com/ryanlangton/angular2-asp5-starter/tree/typescript-errors

+0

我認爲'package.json'目錄中的'npm install'應該解決這個問題。 TypeScript Compiler會自動在你的'node_modules'中找到類型定義 –

回答

0

我覺得一個npm installpackage.json目錄應該解決這個問題。 TypeScript編譯器將在您的node_modules中自動查找類型定義。

問題是依賴關係解析在JSPM驅動的Angualr2應用程序中是雙摺疊的。

編譯階段,這是gulp-typescript在這種情況下,會發現Angular2模塊accroding打字稿編譯器的規則。 tsc將按照慣例在node_modules中輸入文件。所以如果你通過npm在本地安裝Angular2,gulp-typescript會正確解決它。

但是運行階段是完全不同的故事。在瀏覽器中,所有依賴項都由jspm解析,jspm由config.js配置。你的打字稿被編譯爲javascript,所以tsc不會在這裏干擾。 Systemjs將在jspm_packages中找到angular2

所以,看來你的編譯階段依賴沒有安裝。試用npm install

+0

很傷心,jspm不兼容npm :(通常你需要在jspm和npm中安裝兩個模塊兩次 –

相關問題