Chrome扩展程序hint.js&ngHintModules

我们的angular度应用程序有时不加载在铬金丝雀(版本41.0.2237.0金丝雀(64位))说

由于:RangeError:超出最大调用堆栈大小,无法实例化模块ngHintModules

但它加载罚款Firefox,铬(版本39.0.2171.71(64位)),Safari浏览器。

可能不确定是否有angular度与否。

完全错误

Uncaught Error: [$injector:modulerr] Failed to instantiate module ngHintModules due to: RangeError: Maximum call stack size exceeded at Array.forEach (native) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2333:21) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2384:5) at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7 at Array.forEach (native) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21) at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7 at Array.forEach (native) at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21) at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7 

注意:我在这里显示的错误是从

版本41.0.2237.0 canary(64位)

我也有这个问题,这是通过禁用Batarang解决的。

这个问题在这里的Batarang Github上打开: https : //github.com/angular/angularjs-batarang/issues/156

你可以从这个zip文件中加载之前的Batarang版本: https : //github.com/angular/angularjs-batarang/archive/v0.4.3.zip

  1. 在Chrome中打开更多工具 – >扩展程序
  2. findAngularJS Batarang并点击垃圾桶去除扩展名
  3. 下载.zip
  4. 解压文件
  5. 在Chrome中打开更多工具 – >扩展程序
  6. 检查顶部的开发人员模式
  7. 点击“加载解压后的扩展名”
  8. select解压缩的目录
  9. 如果您得到有关清单文件的错误,那么您可能select了一个太高的目录级别。 确保你select了最底层的angularjs-batarang-0.4.3目录
  10. 像以前一样,加载一个AngularJS页面并使用Inspector再次使用Batarang

这将恢复以前的版本,虽然有问题确实有一些主要工作function,如性能分析,范围检查,选项,并从最新版本的帮助选项卡。 0.7.1版本修复了应用程序的主要破坏,但它只提供范围树(没有检查器)和新的angular度提示function。

你不需要禁用Angular batarang; 只需执行以下操作:

  1. 打开开发者工具并导航到hint.js文件(触发堆栈溢出的文件)
  2. 转到第453行添加一个断点
  3. 重新加载应用程序,当它击中断点只是注释掉(setupModuleLoader(窗口)),然后单击继续
  4. 它仍然会抛出一个exception,(Uncaught ReferenceError:angular没有定义),但是你将能够运行batarang

我知道这不是最好的解决scheme,但是这是我能够find的最快速的事情,而不会深入到这个问题

更新

检查更多的发生了什么我注意到,当我们定义了多个模块时,问题就发生了,而且我们为它们添加了相同的依赖关系。

例如:

 angular.module("app", ["moduleB", "moduleC"]); angular.module("moduleB", ["moduleC"]); 

当我定义moduleB而没有通过它的父模块传递相同的代价,那么没有堆栈溢出。

 angular.module("moduleB", []); 

我们的团队刚刚经历了这个错误,并且通过将Chrome中的Batarang Extension更新为最新版本而得到修复。

更新…随着Chrome的新的更新,问题又回来了,所以如果有人遇到这个错误,恢复到以前的版本的Chrome。 所有可用的版本,不要select第一个。 http://www.slimjet.com/chrome/google-chrome-old-version.php然后它应该工作正常!;