业力:'要求'没有定义

时间:2016-10-07 13:48:18

标签: angularjs karma-jasmine chai

我的角度测试环境运行得很好,直到一周前,当我试图运行业力时,我开始收到此错误:

Chrome 53.0.2785 (Linux 0.0.0) ERROR
  Uncaught ReferenceError: require is not defined
  at node_modules/chai-as-promised/lib/chai-as-promised.js:2

此错误首先发生在CI平台中。当我清理并重新安装我所有应用程序的依赖项时,它才开始在我的本地环境中发生,因此我可以得出结论,某些依赖项得到了更新,现在缺少了一些东西。

我发现发现了类似的问题,建议在节点依赖项列表和karma配置文件中添加额外的依赖项,例如requirejsbrowserify,但它们没有帮助。

还有什么可能导致此错误?我将以下插件加载到karma:

    plugins: [
        'karma-jasmine',
        'karma-mocha',
        'karma-chrome-launcher',
        'karma-chai',
        'karma-chai-as-promised',
        'karma-jquery-chai',
        'karma-mocha',
        'karma-coverage',
        'karma-ng-html2js-preprocessor',
        'karma-ng-json2js-preprocessor',
        'karma-sinon',
        'karma-sinon-chai'
    ]

1 个答案:

答案 0 :(得分:5)

问题在于如同承诺的那样6.0 dropped support for SystemJS,因此,因为所谓的承诺所带来的因果关系的承诺不再有效。

我最终删除了karma-chai-as-promised,并在一个常见的测试初始化​​文件中手动挂起chai-as-promised:chai.use(chai-as-promised)