0

在我的 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

4

0 回答 0