2017-10-12 2 views
1

J'ai créé un projet en utilisant la nouvelle version angulaire-cli et j'ai rendu le projet opérationnel. Lorsque je lance ng serve et ng build, cela fonctionne parfaitement sans donner d'erreur. Mais quand j'ai essayé de lancer ng test, il me montre des erreurs comme celle-ci.Impossible de trouver JQuery lors de l'exécution de la commande 'ng test'

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 '$'. 

J'ai ajouté JQuery de la manière suivante à la cli.json angulaire

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

J'ai importé JQuery à mon module principal via cette façon

import 'jquery'; 

Y at-il des étapes manquantes dans les configurations ci-dessus?

+0

pouvez-vous mettre l'erreur dans le texte pas d'image? –

+1

La publication a été mise à jour – JLS

Répondre

1

En supposant que vous avez installé @types/jquery, essayez d'ajouter jquery à la liste des types en tsconfig.spec.json (il devrait déjà avoir jasmine et node dans la liste).


Aussi, lorsque vous ajoutez jquery.min.js à la liste scripts dans angular-cli.json, il se retrouve dans votre scripts.bundle.js. Lorsque vous faites ensuite import 'jquery'; dans votre module principal, aussi finit dans votre vendor.bundle.js, donc vous avez ajouté le code deux fois.

Au lieu de faire import 'jquery';, il suffit d'ajouter à votre liste jquerycompilerOptions types dans tsconfig.app.json (ou en créer un "types": ["jquery"]). Vous pourrez ensuite référencer l'objet global jquery sans l'importer une seconde fois.