在我的Grunt / yeoman / angular项目中,我将部分代码编写为节点模块,并在使用browserify构建项目期间由Grunt导入。 碰巧的是,只有在safari上(在7和8上检查过),由于这个错误,webapp的缩小版本不起作用:
SyntaxError:无法在严格模式下声明名为“k”的参数
我发现代码行是这一行:
c.prototype.key=function k(k){var a=this._baseState;return f(null===a.key),a.key=k,this}
起始码是:
Node.prototype.key = function key(key) {
var state = this._baseState;
assert(state.key === null);
state.key = key;
return this;
};
我不明白它是否是browserify库的一部分,但当我将mathjs添加到项目中时肯定会包含它。 我尝试用uglifyJS mangle选项保留“key”这个词,但“key”也是一个保留词。
我怎样才能避免这种问题?我使用了错误的方法吗?
编辑:我在asn1 lib https://github.com/indutny/asn1.js/blob/master/lib/asn1/base/node.js#L225中找到了该函数 现在我真的不知道该怎么做。
编辑:图书馆的作者已明确修复了这个问题:) https://github.com/indutny/asn1.js/commit/c75d861e705df9559bf572e682552278b98a218d