Angular ng服务不包括polyfills-IE11 / Edge仅在运行ng build --prod时有效

时间:2018-10-01 15:35:10

标签: angular angular-cli polyfills

我尝试同时使用npm run start和ng serve。在所有情况下,生成的应用程序在IE11和Edge中根本无法运行。

围绕IE11和Edge还有很多其他问题,但这完全是由于Angular CLI在运行ng serve时无法有效包含polyfill所引起的。

    ng serve

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **

Date: 2018-10-01T15:27:24.006Z
Hash: f7ee38fccff1d585e3ed
Time: 12681ms
chunk {main} main.js, main.js.map (main) 119 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 452 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 5.22 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 86.4 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 7.2 MB [initial] [rendered]
i 「wdm」: Compiled successfully.

这是绝对必要的,因为我需要使我的应用程序与IE11 / Edge完全兼容,并且我无法进行生产以检查将div居中是否有效。

EDIT1:

运行ng serve --prod似乎可以正常工作,但是修改某些东西时,它的速度很慢。仍然想找到解决方法。

1 个答案:

答案 0 :(得分:0)

这可能对您来说有点晚了,但是如果其他人发现了……我遇到了类似的问题,即从ng伺服器运行时,除了Microsoft的EDGE浏览器外,使用CLI从头开始制作的Angular 7应用程序都可以正常工作。 (是的,IE 11起作用了,但是EDGE没起作用。去看看吧。)

无论如何,我发现了这篇文章: https://github.com/angular/angular-cli/issues/8596

用户clydin的评论为我提供了修复(即使他们在谈论Safari)。他们说:

  

该错误是由于开发服务器的实时重载客户端代码引起的   (来自webpack-dev-server),需要基本的ES2015支持。这个   不会影响应用程序的构建(生产或其他方式),因为   实时重新加载代码不存在。实时重新加载功能可以   如果需要,可以通过--no-live-reload选项禁用。由于缺陷   在Safari 10中,在ng服务上启用源地图(默认)结果   类似的错误。这不会影响Safari 11。

我在package.json中创建了一个脚本,当我运行该脚本时,EDGE起作用了。您可能对此标志还很幸运。

"app-edge": "ng serve --host 0.0.0.0 --disable-host-check --no-live-reload"