web-dev-qa-db-fra.com

Erreur: Aucun fournisseur pour "framework: jasmine"! (Résolution: cadre: jasmin)

J'ai couru sur ma console Windows:

npm install -g yo grunt-cli bower

npm install -g generator-angular

yo angular

Ensuite, j'ai commencé mon projet avec webstorm et j'ai cliqué avec le bouton droit de la souris sur le fichier karma.conf.js dans l'explorateur de projets où j'ai l'élément de menu 'Exécuter karma.conf.js' et lancer le programme d'exécution karma. Puis j'obtiens son exception:

...\app\node_modules\karma\node_modules\di\lib\injector.js:9
      throw error('No provider for "' + name + '"!');
            ^
Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)

Ensuite, dans la console que j'ai lue, je peux aussi utiliser --force alors je l'ai essayé: grunt --force

Cela a pris du temps mais il ne semblait plus y avoir d'erreur. Heck pourquoi --force-il installer un fournisseur ??? CECI a été testé dans le CMD.

grunt serve a maintenant fonctionné et mon navigateur a été lancé avec l'application de démarrage.

Alors qu'est-ce que - fait forcément que "l'erreur: Aucun fournisseur pour" framework: jasmine "! (Résolution: framework: jasmine) 'est parti?

Quand je grogne dans la webstrom IDE je reçois à nouveau:

Attention: Pas de fournisseur pour "framework: jasmine"! (Résolution: framework: jasmine) Utilisez --force pour continuer.

Donc, ce problème n'est pas résolu.

55
HelloWorld

Grunt --force fonctionne parce que vous lui dites de contourner les tests de karma. Remarquez que si vous exécutez grunt --force, le message "Terminé, mais avec des avertissements" reste affiché.

Pour résoudre ce problème: ajoutez "karma-jasmine" et "karma-chrome-launcher" (ou le lanceur que vous utilisez) aux devDependencies dans packages.json et exécutez à nouveau l'installation de npm.

npm install karma-jasmine --save-dev

npm install karma-chrome-launcher --save-dev

Cela économisera karma-jasmine et karma-chrome-launcher dans le fichier package.json de votre projet. Les packages peuvent ensuite être installés en exécutant:

npm install

Source: Aucun fournisseur pour "framework: jasmine"! (Résolution: framework: jasmine)

84
grant

pour moi, le client karma n'était pas installé globalement.

npm install -g karma-cli

73
Ken

Et pour ceux qui sont encore assez nouveaux dans Karma (comme moi), n'oubliez pas de vous assurer que vous avez ajouté le plugin dans votre fichier karma.conf.js. Je me suis finalement rendu compte après avoir parcouru la plupart de ces autres corrections proposées: (

module.exports = function (config) {
  config.set({
    basePath: '',

    plugins: [
      'karma-chrome-launcher',
      'karma-jasmine'
    ],
...

J'espère que cela aide quelqu'un, même si cette question est maintenant assez ancienne et ne semble pas être à l'origine de son auteur; )

11
idclaar

Ajouter une réponse au cas où quelqu'un toujours reçoive cette erreur.

Karma-cli (karma start) donnera erreur: aucun fournisseur pour "framework: jasmine"! (résolution: framework: jasmine) pour l'une des raisons suivantes:

  1. Vous n'avez pas encore installé le module de noeud karma-jasmine et il n'est pas répertorié dans la section devDependencies de votre package.json.

Solution: npm install -D karma-jasmine

  1. Vous avez un tableau de propriétés 'plugins' dans votre fichier karma.config.js, mais ce tableau ne mentionne pas 'karma-jasmine'.

Solution: Ajoutez 'karma-jasmine' aux plugins dans karma.config.js ou supprimez si possible cette propriété entière 'plugins'.

plugins:['karma-jasmine']

  1. Vous avez une installation globale de 'karma-cli' et quand vous faites 'karma start' _, Karma essaie de trouver le module Karma-Jasmin dans sa portée globale. Vérifiez la liste globale des modules installés à l'aide de: npm list -g --depth=0.

Solution: Installez karma-jasmine également dans la portée globale en utilisant 'npm install -g karma-jasmine' ou supprimez karma de la portée globale et installez-le dans la portée du projet local. Dans les cas ultérieurs, vous devrez ajouter ce qui suit à package.json:

"scripts" { 
 "test": "karma start"
}

et lancez karma en utilisant la commande 'npm run test' ou 'npm test'.

7
Praym

Je me suis battu avec exactement le même problème. Après avoir enquêté, j'ai réalisé que le karma fonctionnait de manière globale en utilisant le répertoire '/ usr /' comme dossier de base.

Une solution qui a fonctionné pour moi a été de remplacer le karma par le karma-cli:

npm remove -g karma
npm install -g karma-cli
6

Pour ceux qui utilisent karma-spec-reporter et obtiennent cette erreur: "Erreur: Aucun fournisseur pour" framework: jasmine "! (Résolution: framework: jasmine)"

Dans votre fichier karma.conf.js, supprimez: "plugins: [" karma-spec-reporter "]" et l'erreur devrait disparaître.

2
marrion luaka

Voici la requête de bogue principale sur github https://github.com/yeoman/generator-angular/issues/629

Selon cela, le problème est davantage lié au générateur de karma, qui contenait ces 2 extensions par défaut et ne le fait plus.

1
beauXjames

Et pour moi, je n'avais pas le karma-jasmin dans le monde.

npm install -g karma-jasmine

comme décrit ici: "Aucune erreur de fournisseur" sur Karma sert en cours d’exécution de angularjs phonecat tutorial

0
caioverissimo

npm i -D @ types/es6-promise @ types/es6-collections

0
Davem M