ngAnnotate - 警告:StringMap 需要字符串键
ngAnnotate - Warning: StringMap expected string key
我在使用 Grunt 和 grunt-ng-annotate 时收到此警告。
警告中没有提到错误在文件中的位置,这使得调试变得困难。
有什么想法吗?
问题原来是使用了 ES6 符号,在本例中是箭头函数 (=>),default 参数和 让.
我没有详细了解为什么 ngAnnotate 不支持这个。
为了找到问题出在哪里,我用 grunt switch --force 覆盖了 ngAnnotate 警告,后来在构建 uglify 中抱怨了 ES6 语法的更多细节。
我也遇到了同样的问题,但我的情况不同。
我们的一位团队成员已将函数参数初始化为某个默认值。类似于以下内容。
$scope.functionName = function(defaultVar = false){
//some code
}
在我的 gulp 脚本中,有一行
.pipe(plugins.if(release, plugins.ngAnnotate()))
因此,当我删除这一行时,构建脚本会自动在控制台中打印错误,指向错误所在的确切文件和行号。
最后,我通过删除变量初始化代码解决了这个问题。
希望这会对某人有所帮助...
可能的原因:
() => {}
{ value }
let
function (...args)
function (defaultVar = false)
解决方案:
function () {}
{ value: value }
var
function (args)
function (defaultVar) { defaultVar = (defaultVar === undefined) ? false : defaultVar }
我也遇到了由解构赋值引起的类似问题:
// the following line broke the build
const { name, gender, yearOfBirth, occupation } = profile;
我在使用 Grunt 和 grunt-ng-annotate 时收到此警告。
警告中没有提到错误在文件中的位置,这使得调试变得困难。
有什么想法吗?
问题原来是使用了 ES6 符号,在本例中是箭头函数 (=>),default 参数和 让.
我没有详细了解为什么 ngAnnotate 不支持这个。
为了找到问题出在哪里,我用 grunt switch --force 覆盖了 ngAnnotate 警告,后来在构建 uglify 中抱怨了 ES6 语法的更多细节。
我也遇到了同样的问题,但我的情况不同。
我们的一位团队成员已将函数参数初始化为某个默认值。类似于以下内容。
$scope.functionName = function(defaultVar = false){
//some code
}
在我的 gulp 脚本中,有一行
.pipe(plugins.if(release, plugins.ngAnnotate()))
因此,当我删除这一行时,构建脚本会自动在控制台中打印错误,指向错误所在的确切文件和行号。
最后,我通过删除变量初始化代码解决了这个问题。
希望这会对某人有所帮助...
可能的原因:
() => {}
{ value }
let
function (...args)
function (defaultVar = false)
解决方案:
function () {}
{ value: value }
var
function (args)
function (defaultVar) { defaultVar = (defaultVar === undefined) ? false : defaultVar }
我也遇到了由解构赋值引起的类似问题:
// the following line broke the build
const { name, gender, yearOfBirth, occupation } = profile;