为什么有角度的生产版本中的polyfill与开发模式下的行为不同?

时间:2018-12-13 10:40:49

标签: angular angular-material2 polyfills

我们使用棱角材质显示一个简单的对话框。仅在与core-js / es6 / weak-map polyfill结合使用的Internet Explorer 11中才会出现此问题。首先,我们忘记了包含此polyfill,但是在开发模式下,对话框仍然有效。但是,当我们测试生产版本时,对话框没有打开并引发错误。现在我们很清楚,由于缺少polyfill,它应该会失败。但是,为什么在没有polyfill的情况下可以在开发模式下工作呢?

我们有一个基于cli的示例项目,用于在此处显示问题:https://github.com/olmero/matdialog-ie11

您可以使用“ npm run start”和“ npm run start-prod”运行项目。然后在polyfills.ts中注释掉WeakMap polyfill并进行比较。

1 个答案:

答案 0 :(得分:0)

v7中有一个polyfill更改。我不知道这是否与您的问题有关。

“在继续关注性能的同时,我们分析了整个生态系统中的常见错误。我们发现许多开发人员将反射元数据polyfill包含在生产中,而这仅在开发中需要。

要解决此问题,对v7的部分更新会自动将其从polyfills.ts文件中删除,然后在以JIT模式构建应用程序时将其作为构建步骤包括在内,默认情况下从生产版本中删除此polyfill。”