首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS生成错误[RangeError:最大调用堆栈大小超过]

RequireJS生成错误[RangeError:最大调用堆栈大小超过]
EN

Stack Overflow用户
提问于 2014-08-20 08:22:10
回答 2查看 1.9K关注 0票数 2

我正尝试用requirejs:production任务构建我的Grunt/RequireJS应用程序,我得到了以下输出:

代码语言:javascript
复制
Running "requirejs:production" (requirejs) task
>> Tracing dependencies for: ../bower_components/almond/almond
>> RangeError: Maximum call stack size exceeded
>> In module tree:
>>     main
>>       models/session
>>         views/root
>>           navigation
>>             permissions
>>               text
{ [Error: RangeError: Maximum call stack size exceeded
In module tree:
    main
      models/session
        views/root
          navigation
            permissions
              text
]
  originalError:
   { [RangeError: Maximum call stack size exceeded]
     moduleTree:
      [ 'text',
        'permissions',
        'navigation',
        'views/root',
        'models/session',
        'main' ],
     fileName: '/Users/zensavona/softwaredev/projects/haze/t3-web/web-admin/src/main/bower_components/text/text.js' } }

我认为它所说的代码是:

代码语言:javascript
复制
define(["backbone", "models/permissions", "text!/ducks/api/Permissions/Current"],
  function(Backbone, Permissions, permissionJSON) {
    if (permissionJSON.indexOf("<center><h2>Login</h2></center>") > -1) {
      return new Permissions();
    } else {
      var data = JSON.parse(permissionJSON);
      return new Permissions(data);
  }
});

我的第一本能是某种循环依赖(?)但我一个也看不见。这与我的代码或text模块有关吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-20 19:05:24

FWIW,我无法解决这一问题,并通过删除所有的text一起修复它。幸运的是,这是我唯一需要它的地方,我用一个async: false jQuery调用替换了它(参见下面)。

代码语言:javascript
复制
define(["jquery", "backbone", "models/permissions"],
  function($, Backbone, Permissions) {
    var permissionJSON = "";
    $.ajax({
        type: "GET",
        url: '/ducks/api/Permissions/Current',
        async: false,
        success: function(data) {
          permissionJSON = data;
        }
    });

    if (permissionJSON.indexOf("<center><h2>Login</h2></center>") > -1) {
      return new Permissions();
    } else {
      return new Permissions(permissionJSON);
    }
});
票数 0
EN

Stack Overflow用户

发布于 2015-04-24 10:53:26

我在requireJS 2.1.15中遇到了这个问题。问题似乎是html扩展不是路径的一部分。

代码语言:javascript
复制
define([
    ...
    'text!templates/user/elements/profile.moderate.menu' //.html extension is missing
]...

一旦我增加了扩展,事情就开始工作了。

代码语言:javascript
复制
define([
    ...
    'text!templates/user/elements/profile.moderate.menu.html'
]...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25399978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档