Angular ng serve не включает полифиллы IE11 / Edge, работающие только при запуске ng build --prod

Я пробовал использовать для этого как npm run start, так и ng serve. Во всех случаях созданное приложение НЕ работает в IE11 и Edge.

Есть много других проблем, связанных с IE11 и Edge, но это касается только проблемы Angular CLI, неспособной эффективно включать полифиллы при запуске ng serve.

    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.

РЕДАКТИРОВАТЬ1:

Запуск ng serve --prod, кажется, действительно работает, НО, боже, это медленно при изменении чего-либо. Все еще хотел бы найти способ обойти это.


person SebastianG    schedule 01.10.2018    source источник
comment
У вас включены все полифиллы IE11? (См. angular.io/guide/browser-support#polyfill-libs) . Кроме того, установлена ​​ли ваша цель tsconfig.json на es5?   -  person Jolleyboy    schedule 01.10.2018
comment
@Jolleyboy, как упоминалось в сообщении - ДА, и все они работают при использовании ng build --prod и ng serve --prod - это не работает только при запуске ng serve, что по-прежнему критично.   -  person SebastianG    schedule 01.10.2018


Ответы (1)


Это может быть немного поздно для вас, но на случай, если кто-то еще это обнаружит ... У меня была аналогичная проблема, когда мое приложение Angular 7, созданное с нуля с помощью CLI, работало везде, кроме браузера Microsoft EDGE при запуске из ng serve. (Да, IE 11 работал, но EDGE - нет. Подумайте.)

Так или иначе, я нашел эту статью: https://github.com/angular/angular-cli/issues/8596

Комментарий пользователя clydin предоставил мне исправление (хотя они говорили о Safari). Они сказали:

Ошибка связана с кодом клиента живой перезагрузки сервера разработки (с webpack-dev-server), который требует базовой поддержки ES2015. Это не повлияет на сборки (производственные или иные) приложения, так как код оперативной перезагрузки отсутствует. Функциональность оперативной перезагрузки при желании можно отключить с помощью параметра --no-live-reload. Из-за дефекта в safari 10 включение исходных карт на ng serve (по умолчанию) приводит к аналогичной ошибке. Это не влияет на Safari 11.

Я создал сценарий в своем package.json, и когда я запустил этот сценарий, EDGE сработал. Вам тоже может повезти с этим флагом.

"app-edge": "ng serve --host 0.0.0.0 --disable-host-check --no-live-reload"
person Chris    schedule 08.04.2019
comment
Привет, Крис, мне уже слишком поздно его тестировать, но я не могу перезагрузить вживую, просто будет тот же результат, что только строит? - person SebastianG; 09.04.2019
comment
@MichaelB, насколько я понимаю, --no-live-reload отключает некоторые функции в браузере, которые вызывали ошибки при попытке ng обслуживать приложение. Это не имеет отношения к тому, как построен код, а к тому, как браузер его загружает. У меня это сработало, поэтому я не копал слишком глубоко. - person Chris; 23.09.2019