61

我已经在我的 Windows 控制台上运行:

npm install -g yo grunt-cli bower

npm install -g generator-angular

yo angular

然后我使用 webstorm 开始我的项目,并在项目资源管理器中右键单击 karma.conf.js 文件,其中我有菜单项“运行 karma.conf.js”并启动 karma runner。然后我得到了他的例外:

...\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)

然后在我阅读的控制台中,我也可以使用 --force 所以我试了一下: grunt --force

花了一些时间,但似乎没有更多的错误。哎呀为什么 --force 安装提供程序???这在 CMD 中进行了测试。

grunt serve 现在工作了,它用启动应用程序启动了我的浏览器。

那么--force 是怎么做的?'错误:没有“框架:茉莉花”的提供者!(解决:框架:茉莉花)'不见了?

当我在 webstrom IDE 中发出咕噜声时,我又得到了:

警告:没有“框架:茉莉花”的提供者!(解决:framework:jasmine)使用 --force 继续。

所以这个问题没有解决。

4

9 回答 9

89

Grunt --force 之所以有效,是因为您告诉它绕过业力测试。请注意,如果您运行 grunt --force,它仍然会说“完成,但有警告”。

要修复:将“karma-jasmine”和“karma-chrome-launcher”(或您使用的任何启动器)添加到 packages.json 中的 devDependencies 并再次运行 npm install。

npm install karma-jasmine --save-dev

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

这会将 karma-jasmine 和 karma-chrome-launcher 保存在项目的 package.json 文件中。然后可以通过运行安装软件包:

npm install

来源:没有“框架:茉莉花”的提供者!(解决:框架:茉莉)

于 2014-03-24T03:38:46.163 回答
75

对我来说,我没有在全球范围内安装 karma 客户端。

npm install -g karma-cli

于 2015-06-18T21:41:39.057 回答
14

对于那些对 Karma 还不够陌生的人(比如我),不要忘记确保已将插件添加到 karma.conf.js 文件中。在运行了大多数其他建议的修复程序后,我终于想到了:(

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

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

希望这对那里的人有所帮助,即使这个问题现在已经很古老了,而且发起者似乎仍在监视它;)

于 2017-02-03T22:56:31.690 回答
10

如果有人仍然收到此错误,请添加回复。

Karma-cli ( karma start) 将给出 错误:“框架:茉莉花”没有提供者!(解决:framework:jasmine)出于以下原因之一:

  1. 您尚未安装 karma-jasmine 节点模块,并且它未在 package.json 的 devDependencies 部分中列出

解决方案npm install -D karma-jasmine

  1. 您的 karma.config.js 文件中有一个“插件”属性数组,但该数组没有提及“karma-jasmine”。

解决方案:将“karma-jasmine”添加到 karma.config.js 中的插件中,或者尽可能删除整个“插件”属性。

plugins:['karma-jasmine']

  1. 你有一个全局安装的“karma-cli”,当你这样做时'karma start',karma 试图在全局范围内找到 karma-jasmine 模块。使用以下命令检查全局已安装模块列表:npm list -g --depth=0

解决方案:要么在全局范围内安装 karma-jasmine,要么在全局范围内'npm install -g karma-jasmine'删除 karma,并将其安装在本地项目范围内。在以后的情况下,您必须将以下内容添加到 package.json:

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

并使用命令'npm run test'或运行业力'npm test'

于 2017-10-18T15:47:13.370 回答
7

我在完全相同的问题上苦苦挣扎。经过调查,我意识到 karma 使用“/usr/”目录作为基本文件夹在全球范围内运行。

一个对我有用的解决方案是用 karma-cli 替换 karma:

npm remove -g karma
npm install -g karma-cli
于 2017-03-01T07:29:17.453 回答
2

对于那些使用 karma-spec-reporter 并收到此错误的人:“错误:“框架:茉莉花”没有提供者!(解决:框架:茉莉花)”

在您的 karma.conf.js 中,删除:"plugins: ["karma-spec-reporter"]",错误应该会消失。

于 2016-11-01T17:37:18.970 回答
1

这是 github 上的主要错误请求 https://github.com/yeoman/generator-angular/issues/629

据此,问题更多在于 karma-generator 过去默认包含这两个扩展并且不再包含。

于 2014-04-21T18:20:24.660 回答
1

对我来说,我没有全球范围内的业力茉莉花。

npm install -g karma-jasmine

如此处所述:Karma 上的“无提供程序错误”运行 angularjs phonecat 教程

于 2016-07-04T04:47:19.930 回答
0

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

于 2016-12-30T07:21:58.723 回答