2017-10-12 59 views
1

我已經使用新的angular-cli版本創建了一個項目,並且使項目啓動並運行。當我運行ng serve和ng build命令時,它完美地工作,沒有任何錯誤。但是當我嘗試運行測試時,它顯示了我這樣的錯誤。在運行'ng test'命令時找不到jQuery

theme.provider.ts (53,31): Property 'removeClass' does not exist on type 'JQuery'. 
theme.provider.ts (64,35): Property 'addClass' does not exist on type 'JQuery'. 
theme.provider.spec.ts (7,30): Cannot find name '$'. 

我在下面的方式加了jQuery角,cli.json

"scripts": [ 
    "../node_modules/jquery/dist/jquery.min.js" 
], 

然後我就通過這種方式

import 'jquery'; 

進口jQuery來我的主要模塊有上述配置中的任何缺失步驟?

+0

你可以把錯誤的文字不是圖像? –

+1

發佈已更新 – JLS

回答

1

假設你已經安裝了@types/jquery,嘗試在tsconfig.spec.json加入jquery到類型列表中(它應該已經在列表中jasminenode)。


此外,當您在angular-cli.json添加jquery.min.jsscripts列表,它在你的scripts.bundle.js結束。當您在主模塊中執行import 'jquery';時,它也會在vendor.bundle.js中結束,因此您已經添加了兩次代碼。

而不是做import 'jquery';的,只需添加jquerycompilerOptions類型列表中tsconfig.app.json(或創建一個"types": ["jquery"])。然後,您將能夠引用全局jquery對象,而無需再次導入它。