2017-10-12 60 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对象,而无需再次导入它。