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.
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)
pour moi, le client karma n'était pas installé globalement.
npm install -g karma-cli
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; )
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:
Solution: npm install -D 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']
'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'
.
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
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.
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.
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
npm i -D @ types/es6-promise @ types/es6-collections