我如何压制"警告:'找不到HammerJS。"在每个文本执行?

时间:2017-03-22 14:53:04

标签: angular hammer.js angular-material2

执行测试时,每个测试都记录以下内容:

WARN: 'Could not find HammerJS. Certain Angular Material components may not work correctly.'

来自Angular Material Getting Started Guide

  

某些组件(md-slide-togglemd-slidermdTooltip)依赖于HammerJS进行手势。为了获得这些组件的完整功能集,必须将HammerJS加载到应用程序中。

基于此,我的结论是我不需要安装HammerJS,因为我没有专门使用需要它的Angular Material组件。 如果您不需要,请不要添加它!

但是,在执行1000多个测试时,每次打印出的警告确实没有用,所以我想摆脱它或只打印一次。

1 个答案:

答案 0 :(得分:1)

以下解决方案将:

  1. 只知道缺少一次HammerJS。
  2. 如果您将来最终使用new Hammer()构造函数,请向控制台输出错误。
  3. 不要求您在测试环境中调用enableProdMode(),这样您就可以继续受益于双重更改检测所提供的其他错误检查。
  4. 将以下beforeAll函数添加到测试包中:

    beforeAll(function() {
        if (!window.hasOwnProperty('Hammer')) {
            window['Hammer'] = function() {
                console.error(
                    'HammerJS is not installed. If you\'re now using Angular Material components that require it, please "npm i hammerjs"'
                );
            };
            console.warn('Could not find HammerJS. Certain Angular Material components may not work correctly.');
        }
    });