在Windows上使用karma-browserify找不到模块错误
我正在尝试使用Karma,Karma-Jasmine和Karma-Browserify在Angular / Browserify项目上设置unit testing。 我在Windows机器上,以供参考。 karma-cli
在我的全局npmpath上, karma
, karma-jasmine
, karma-browserify
和browserify
都是本地npm安装,使用-D
。
我试图拉入一个单一的spec文件,如下所示:
var PhoneListCtrl = require('../../../public/js/app/controllers/phone-list'); describe('PhoneListCtrl', function() { var scope, ctrl; beforeEach(function() { scope = {}; ctrl = new PhoneListCtrl(scope); }); it('should create "phones" model with 3 phones', function() { expect(scope).not.toBe(undefined); }); });
我每次都得到以下错误:
Uncaught Error: Cannot find module 'Cc/gGH'
克隆下面的回购,安装因果和所有插件,并试图运行他们的示例testing套件后,我得到了完全相同的错误:
https://github.com/xdissent/karma-browserify
https://github.com/waye929/angular-browserify
我究竟做错了什么? testing规范模块find了正确的,业力似乎是find所有必要的插件/预处理器,但似乎karma-browserify每次在规范中的require
声明绊倒,因为我无法理解的原因。
我已经卸载并重新安装了业力和所有相关的插件无数次,无济于事。
我设法find一个解决scheme。 这个问题是由于karma-browserify
自己的模块名称散列函数造成的,它与新版本的browserify
不兼容。 有一个fork使用browserify
的散列函数来处理它:
https://github.com/voidlock/karma-browserify/commit/3afe3b7485f2e4723bba5ad1c5a730d560b8c234
有一个待处理的请求,但同时你可以通过放置来使用这个分支
"karma-browserify": "https://github.com/voidlock/karma-browserify/tarball/use-browserify-hash-function"
在你的package.json
(dev)依赖项部分。