![](/img/trans.png)
[英]TypeScript error in Angular2 code: Cannot find name 'module'
[英]Typescript Angular2 error cannot find module angular/x
此應用使用jspm進行javascript模塊加載,因此所有angular2打字稿定義文件都位於jspm_modules文件夾中。 我收到Typescript無法找到模塊“ Angular / Core”,“ Angular / route”,“ Angular / http”等的錯誤。我在VS 2015編輯器中以及運行構建時都使用gulp-typescript的錯誤。 我以為是因為我的tsconfig.json中有jspm_packages:
{
"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文件,但無濟於事。 任何想法如何解決此問題?
源代碼可在github上找到。
https://github.com/ryanlangton/angular2-asp5-starter/tree/typescript-errors
我認為package.json
目錄中的npm install
應該可以解決此問題。 TypeScript編譯器將在您的node_modules
自動找到類型定義。
問題在於,在由JSPM支持的Angualr2應用程序中,依賴項解決方案有兩個方面。
在這種情況下, 編譯階段為gulp-typescript
typescript,它將發現Angular2模塊符合打字稿編譯器的規則。 通常, tsc
將跟隨在node_modules
鍵入文件。 因此,如果您通過npm在本地安裝Angular2,則gulp gulp-typescript
typescript將正確解決它。
但是, 運行時階段則完全不同。 在瀏覽器中,所有依賴項均由jspm解析,而jspm由config.js
配置。 您的打字稿已編譯為javascript,因此tsc在這里不會產生干擾。 Systemjs將在angular2
中找到jspm_packages
。
因此,似乎未安裝您的編譯階段依賴項。 嘗試使用npm install
嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.