应用程序在“grunt build”后停止工作(控制台中没有错误)

Posted

技术标签:

【中文标题】应用程序在“grunt build”后停止工作(控制台中没有错误)【英文标题】:App stop working (with no errors in console) after "grunt build" 【发布时间】:2015-05-27 17:02:39 【问题描述】:

我正在使用 yeoman + bower + grunt 构建一个 AngularJS 应用程序。在我使用 grunt 构建之前,该应用程序运行良好,尽管没有返回错误。

在我的应用程序中,我基本上要求用户在选择中选择一个从 1 到 7 的值,然后应用程序根据选择生成一系列随机数(然后执行更多操作)。

显然,生成随机数的功能在我的测试环境中工作,但在构建和部署 dist 后,我​​只得到一系列 0。

这是函数:

$scope.numbers = function getNumbers (pick) 
    var min = 0;
    var max = 0;
    var numbers = 
      '0': function () 
        min = 0;
        max = 0;
      ,
      '1': function () 
        min = 1;
        max = 3;
      ,
      '2': function () 
        min = 3;
        max = 5;
      ,
      '3': function () 
        min = 5;
        max = 8;
      ,
      '4': function () 
        min = 8;
        max = 13;
      ,
      '5': function () 
        min = 13;
        max = 21;
      ,
      '6': function () 
        min = 21;
        max = 34;
      ,
      '7': function () 
        min = 34;
        max = 55;
      ,
      'default': function () 
        min = 0;
        max = 0;
      
    ;

    (numbers[pick] || numbers['default'])();
    var arr = [];
    // Generate a sequence of as many random numbers within the given range as the number of iterations
    for (var i=0; i<$scope.iterations; i++) 
      arr.push(Math.floor(Math.random() * (max - min + 1)) + min);
    
    return arr;
  ;

然后用于创建一个新字段:efforts: $scope.numbers($scope.pick)

因此出于某种原因在使用 grunt 构建后,该函数无法识别用户选择的值,并且始终返回默认值 (0)。

我已经排除了:

    开关问题(因为在函数开始时将变量设置为不同于 0 的值仍然返回零) pick 未正确注册(已正确保存在 Firebase 中,并且永远不会为 0)

有什么提示吗?

更新:我从压缩文件中提取了这部分:

b.numbers=function(a)var c=0,d=0,e=0:function()c=0,d=0,1:function()c=1,d=3,2:function()c=3,d=5,3:function()c=5,d=8,4:function()c=8,d=13,5:function()c=13,d=21,6:function()c=21,d=34,7:function()c=34,d=55,"default":function()c=0,d=0;(e[a]||e["default"])();for(var f=[],g=0;g<b.iterations;g++)f.push(Math.floor(Math.random()*(d-c+1))+c);return f

【问题讨论】:

【参考方案1】:

好的,我自己看着缩小版并运行了一些测试就知道了。问题实际上是单引号被压缩器剥离。

所以我自己删除了引号并确保选择作为整数传递:

(numbers[parseInt(pick, 10)] || numbers['default'])();

干杯

【讨论】:

以上是关于应用程序在“grunt build”后停止工作(控制台中没有错误)的主要内容,如果未能解决你的问题,请参考以下文章

12月第1周业务风控关注 | 工信部将开展移动恶意程序专项治理工作

关于辅助域控问题

单击按钮后应用程序停止工作

反应原生。 Firebase 消息在启动应用程序几分钟后停止工作

Xcode 更新后过渡停止工作

ASP.NET 5:Azure Web 应用 CORS 在延迟后停止工作