簡體   English   中英

Typescript Angular2錯誤找不到模塊angular / x

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM