punycode使用箭头功能进行编译,因此无法在例如11

时间:2018-08-16 08:25:15

标签: angular internet-explorer polyfills

这是使用angular cli在vendor.js中为angular 6应用程序生成的代码

 const ucs2encode = array => String.fromCodePoint(...array);

带有=>的部分会出现问题,即要在11中渲染

这是polyfills.ts

https://gist.github.com/BehradI/11966c7ccd54e55319490fe60af103be

有什么主意吗?

2 个答案:

答案 0 :(得分:1)

无法使用箭头功能(=>)是IE11(check compatibility)。

您可以像这样用function替换它:

const ucs2encode = function(array) {
    return String.fromCodePoint(...array);
}

答案 1 :(得分:0)

由于所有评论,我也遇到了同样的问题。

  1. 我打开package-lock.json文件,开始跟踪punycode,显然它被其他节点程序多次声明为依赖程序包
  2. 很明显,uri-js引用的是punycode版本2.1.0或更高版本,这会导致问题,因为该版本使用es6而不是es5,因此您最终遇到了使IE崩溃的箭头功能

    “ uri-js”:{   “ version”:“ 4.2.2”,

    “已解决”:“ https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz”,

    “完整性”:“ sha512-KY9Frmirql91X2Qgjry0Wd4Y + YTdrdZheS8TFwvkbLWf / G5KNJDCh6pKL5OZctEW4 + 0Baa5idK2ZQuELRwPznQ ==“,

    “ dev”:是,

    “需要”:{     “ punycode”:“ ^ 2.1.0”   } },

其他建议运行npm-install punycode@1.1.4替换根软件包,但是由于防火墙设置,我遇到代理问题,所以我从根punycode备份了一个备份,并将其替换为一个在节点库浏览器(punycode版本1.1.4)中。我喜欢这种方法,因为我可以轻松回滚并且不会弄乱我的node-modules文件夹

Boom事情在IE上开始起作用