ngAnnotate - 警告:StringMap期望的字符串键

时间:2017-08-31 11:39:54

标签: javascript ecmascript-6 gruntjs uglifyjs ng-annotate

使用 Grunt grunt-ng-annotate 时,我收到此警告。

警告中没有引用错误在文件中的位置,这使调试变得困难。

有什么想法吗?

3 个答案:

答案 0 :(得分:19)

问题原来是使用ES6表示法,在这种情况下,箭头功能( => ),默认参数和

我没有仔细研究为什么ngAnnotate不支持这个。

为了找出问题所在,我用grunt switch - force 覆盖ngAnnotate警告,稍后在构建uglify中抱怨ES6语法更详细。

答案 1 :(得分:7)

可能的原因:

  • std::vector<std::vector<c_atom>> new_lattice(maxX, std::vector<c_atom>(maxY));
  • () => {}
  • { value }
  • let
  • function (...args)

解决方案:

  • function (defaultVar = false)
  • function () {}
  • { value: value }
  • var
  • function (args)

答案 2 :(得分:3)

我也遇到了同样的问题,但就我而言,存在另一个问题。

我们的一名团队成员已将function参数初始化为某个默认值。类似于以下内容。

$scope.functionName = function(defaultVar = false){ 
    //some code 
}

在我的gulp脚本中,有一行

.pipe(plugins.if(release, plugins.ngAnnotate()))

因此,当我删除此行时,构建脚本会在控制台中自动打印错误,指向错误所在的确切文件和行号。

最后,我可以通过删除该变量初始化代码来解决它。

希望这会帮助某人...