2017-02-27 50 views
0

我已經安裝角CLI 1.0.0-RC0與節點7.6.0角CLI V1.0.0 RC0 - VS代碼無法找到名稱HTML元素

這是我所得到的,如果我跑ng -v

_      _     ____ _  ___ 
/\ _ __ __ _ _ _| | __ _ _ __ /___| | |_ _| 
/△ \ | '_ \/_` | | | | |/ _` | '__| | | | | | | 
/___ \| | | | (_| | |_| | | (_| | |  | |___| |___ | | 
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_|  \____|_____|___| 
       |___/ 
@angular/cli: 1.0.0-rc.0 
node: 7.6.0 
os: darwin x64 
@angular/common: 2.4.8 
@angular/compiler: 2.4.8 
@angular/core: 2.4.8 
@angular/forms: 2.4.8 
@angular/http: 2.4.8 
@angular/platform-browser: 2.4.8 
@angular/platform-browser-dynamic: 2.4.8 
@angular/router: 3.4.8 
@angular/cli: 1.0.0-rc.0 
@angular/compiler-cli: 2.4.8 

我通過ng new my-app現在腳手架我的第一個應用程序,我打開使用VS代碼的代碼現在1.9.1

,我驚訝的是,如果我打開app.component.ts文件,並嘗試定義一個HTML元素(這只是一個例子),我得到以下錯誤(找不到名稱「HTML元素」

Error in VS Code

我看到也有在src沒有tsconfig.json文件夾(正如我以前看到的)寧可有tsconfig.app.jsontsconfig.spec.jsontsconfig.json已被放入項目的根目錄。 tsconfig。。**文件是由angular-cli創建的默認文件。

任何有關錯誤的提示?

SOLUTION

在角大學的博客(https://angular-university.io/lesson/angular-rxjs-reactive-patterns-what-reactive-properties-do-browser-events-have#comment-3179923151)我被IndyGoodWill指着解決方案。

我要補充「DOM」在項目的根目錄下的「LIB」陣列的tsconfig.json英寸 因此,默認tsconfig.json(即,通過ng new命令生成的文件)具有

"lib": [ 
    "es2016" 
] 

和這造成的問題。

問題得到具有以下配置

"lib": [ 
    "es2016", 
    "dom" 
] 

現在我意識到,我沒有在項目的根目錄清除tsconfig.json的不同角色和tsconfig.app.json解決src目錄中。

另外可能第二個配置應該是由ng new命令創建的默認配置。

+0

你有沒有在app.component.ts中導入'HTMLElement'類? –

+0

我不希望宣佈它。如果我對以前版本的angular-cli做同樣的事情,我可以使用HTMLElement而不必聲明它。 – Picci

回答

0

添加typeRootssrc/tsconfig.app.json

{ 
    "compilerOptions": { 
    "sourceMap": true, 
    "declaration": false, 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ 
     "es2016", 
     "dom" 
    ], 
    "outDir": "../out-tsc/app", 
    "target": "es5", 
    "module": "es2015", 
    "baseUrl": "", 
    "types": [], 
    "typeRoots": [ 
     "../node_modules/@types" 
    ] 
    }, 
    "exclude": [ 
    "test.ts", 
    "**/*.spec.ts" 
    ] 
} 

將分別高亮顯示:

"typeRoots": [ 
    "../node_modules/@types" 
] 

此外,它看起來像一個好主意,除去"types": [],不知道爲什麼 - 但在這種情況下,我停止看Cannot find name '$'(是的,我必須在我的項目中使用Jquery由於第三方插件依賴項)

+0

我應用了更改,但這並沒有解決我的問題 – Picci

+0

如果我使用angular-cli 1.0.0-beta.31腳手架項目,然後用VS Code 1.9.1打開項目,我看到找到了HTMLElement類型定義in/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/typescript/node_modules/typescript/lib/lib.dom.d.ts。不幸的是,如果我使用angular-cli 1.0.0 rc0 – Picci

+0

不會發生這種情況除了我上面寫的內容外,你還必須遵循遷移指南:https://github.com/angular/angular-cli/wiki/stories-rc的3.0更新 – XAMelleOH