Search code examples
npmjasminekarma-runnerkarma-jasmine

Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)


I have run on my windows console:

npm install -g yo grunt-cli bower

npm install -g generator-angular

yo angular

Then I started my project with webstorm and did right click on the karma.conf.js file in the project explorer where I have the menu item 'Run karma.conf.js' and start the karma runner. Then I get his 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)

Then in the console I read I can also use --force so I tried it: grunt --force

It took some time but there seemed to be no more errors. Heck why does --force install a provider ??? THIS was TESTED in the CMD.

grunt serve now worked and it started my browser with the starting app.

So what was --force doing that the 'Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)' is gone ?

When I do grunt in the webstrom IDE I get again:

Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Use --force to continue.

So this problem is not solved.


Solution

  • Grunt --force works because you tell it to bypass the karma tests. Notice if you run grunt --force, it'll still say "Done, but with warnings".

    To fix: add "karma-jasmine" and "karma-chrome-launcher" (or whatever launcher you use) to the devDependencies in packages.json and run npm install again.

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

    This will save karma-jasmine and karma-chrome-launcher in your project's package.json file. The packages can then be installed by running:

    npm install
    

    Source: No provider for "framework:jasmine"! (Resolving: framework:jasmine)