Không có nhà cung cấp cho “khuôn khổ: hoa nhài”! (Phân giải: khuôn khổ: hoa nhài)


98

Khi tôi chạy lệnh, grunttôi nhận được cảnh báo sau:

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

Có ai biết làm thế nào để giải quyết vấn đề này?

Câu trả lời:


181

Tôi đã gặp lỗi tương tự sau khi tạo một dự án mới trình tạo góc yeoman (yo angle).

Giải pháp cho tôi là thêm "karma-jasmine" vào devDependencies trong package.json và chạy lại "npm install".

npm install karma-jasmine --save-dev

Điều này đã giải quyết được thông báo lỗi "Không có nhà cung cấp cho" framework: jasmine "!"

Tôi cũng phải thêm một trình khởi chạy trình duyệt nghiệp chướng vào devDependencies, vì tôi nhận được thông báo rằng không có trình khởi chạy nào được cài đặt (xem http://karma-runner.github.io/0.10/config/b Duyệt.html ).

npm install karma-safari-launcher --save-dev

Package.json của tôi trông như thế này sau khi thực hiện hành động của tôi:

{
  "name": "test1",
  "version": "0.0.0",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-autoprefixer": "~0.4.0",
    "grunt-bower-install": "~0.7.0",
    "grunt-concurrent": "~0.4.1",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-coffee": "~0.7.0",
    "grunt-contrib-compass": "~0.6.0",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-connect": "~0.5.0",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-contrib-cssmin": "~0.7.0",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-contrib-imagemin": "~0.3.0",
    "grunt-contrib-jshint": "~0.7.1",
    "grunt-contrib-uglify": "~0.2.0",
    "grunt-contrib-watch": "~0.5.2",
    "grunt-google-cdn": "~0.2.0",
    "grunt-newer": "~0.5.4",
    "grunt-ngmin": "~0.0.2",
    "grunt-rev": "~0.1.0",
    "grunt-svgmin": "~0.2.0",
    "grunt-usemin": "~2.0.0",
    "jshint-stylish": "~0.1.3",
    "load-grunt-tasks": "~0.2.0",
    "time-grunt": "~0.2.1",
    "karma-ng-scenario": "^0.1.0",
    "grunt-karma": "^0.8.0",
    "karma": "^0.12.0",
    "karma-jasmine": "~0.2.2",
    "karma-safari-launcher": "~0.1.1",
    "karma-ng-html2js-preprocessor": "^0.1.0"
  },
  "engines": {
    "node": ">=0.8.0"
  },
  "scripts": {
    "test": "grunt test"
  }
}

Tôi đã thay đổi dòng sau trong karma.conf en karma-e2e.conf để sử dụng karma-safari-launcher:

browsers: ['Safari'],

Tôi hy vọng điều này cũng sẽ làm việc cho bạn.


2
Cảm ơn! Điều duy nhất tôi đã làm khác là tôi đã sử dụng chromenpm install karma-chrome-launcher --save-dev
Luciano

1
@KyleHayes Dưới đây là báo cáo lỗi trong dự án máy phát điện-góc: github.com/yeoman/generator-angular/issues/629
cjerdonek

1
Tôi đã Error: No provider for "framework:karma-chrome-launcher"!theo đuổi điều này
David

1
Nếu bạn đã thêm plugin: [...] vào karma.config.js, thì việc cài đặt karma-jasmine sẽ không giải quyết được sự cố. bạn phải thêm 'karma-jasmine' vào mảng plugin như plugin: ['karma-jasmine'].
Thaadikkaaran

Theo hiểu biết của tôi, "npm install karma-jasmine --save-dev" không có bất kỳ ảnh hưởng nào đến package.json. Vì vậy, Cảm ơn cho giải pháp này.
Andy

37

Như @Taco nói, giải pháp mặc định cho vấn đề này được cài đặt plugin thích hợp, như thế này: npm install karma-jasmine --save-devhoặc đây: npm install karma-mocha --save-dev.

Tuy nhiên, lỗi này cũng có thể xảy ra khi bạn đang chạy phiên bản cũ karma-clivì họ đã cập nhật cách karma tải các plugin. Để đảm bảo bạn có phiên bản mới nhất, hãy chạy:

npm install -g karma-cli

1
CÁi này đã sửa nó giúp tôi. Tôi đã có những phụ thuộc được đề cập trước đó, nhưng dường như karma-cli đã lỗi thời.
icfantv

1
Điều này đã khắc phục sự cố của tôi. Cảm ơn bạn thân
shaikh

1
Tôi cũng gặp phải vấn đề này. Rõ ràng, npm install -g karmakhông được điều tương tự như npm install -g karma-cli.
Peter Majeed

@PeterMajeed Sau khi cài đặt Jasmine, tôi nghĩ có lẽ mình có thể làm được npm install -g karmanhưng điều này KHÔNG hoạt động. Bạn phải sử dụngnpm install -g karma-cli
Coburn

34

Vấn đề của tôi là trong karma.config.jstệp của tôi :

plugins: [require("karma-webpack")]

Điều này khiến các karma-*plugin khác không được tải, bao gồm cả karma-jasmine.


1
aleclarson cũng là vấn đề của tôi. Kể từ khi karma-webpackđã có trong tôi package.json's devDependencies, tôi nhận xét ra này pluginsvào trong tôi karma.config.jstập tin.
dave_k_smith

31

Nếu bạn karma.conf.jschỉ định một pluginsthuộc tính, hãy chắc chắn thêm karma-jasminevào danh sách. Nếu tất cả các plugin đều có tiền tố karma-, bạn không cần chỉ định thuộc tính này vì các plugin sẽ được tải tự động.


6
Cảm ơn, điều này đã giải quyết vấn đề của tôi, thêm karma-jasmine vào các plugin!
sandip

Cảm ơn điều này đã làm việc - đây là dòng đầy đủ. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering

6

Điều đó xảy ra với tôi bởi vì tôi đã cài đặt Karma trên toàn cầu và khi tôi chạy lệnh khởi động karma, nó thực sự chạy trong / usr / ... chứ không phải thư mục dev của tôi.

Trong trường hợp của tôi, giải pháp là loại bỏ nghiệp chướng và thay vào đó là cài đặt karma-cli.

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

2

Vấn đề của tôi là "gói Karma" đã chọn trong cấu hình chạy IntelliJ. Tôi đã không chọn gói nghiệp của dự án trong thư mục "node_module" của dự án: nhập mô tả hình ảnh ở đây


Đây chính xác là những gì tôi (thiếu) đang tìm kiếm.
vivekmore
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.