как отключить дифференциальную нагрузку в Angular v8?
В Angular-CLI v8 реализована дифференциальная нагрузка. Но мне не нужны файлы, созданные es5. Я хочу уменьшить количество развертываний.
Я попробовал ниже. Но CLI сгенерировал файлы es5.
- установил
es5browsersupport: false
в angular.json и получил ошибку. - исключить Chrome 41, IE 9-11 и ie_mob 11 из browserList.
Ответы
Ответ 1
В Angular 8 список файлов должен находиться в корневой папке проекта. Следующие записи были необходимы в моем проекте, чтобы отключить дифференциальную загрузку:
> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11
not samsung 4
not android 4.4.3-4.4.4
not last 2 ie_mob versions
not last 2 op_mini versions
not last 2 op_mob versions
not last 2 baidu versions
not last 2 kaios versions
not last 2 and_uc versions
not last 2 and_qq versions
not last 2 edge versions
not chrome 49
Ответ 2
Мне удалось собрать без es5 файлов в Angular v8-rc4.
установите как ниже в browserList, чтобы isEs5SupportNeeded
false в build-angular.
> 0.5%
last 2 versions
Firefox ESR
not dead
not samsung 4
not android 4.4.3-4.4.4
not last 2 IE versions
not last 2 ie_mob versions
not last 2 op_mini versions
not last 2 op_mob versions
not last 2 baidu versions
not last 2 kaios versions
not last 2 and_uc versions
not last 2 and_qq versions
not last 2 edge versions
обратитесь к этому списку. https://caniuse.com/#feat=es6-module
Ответ 3
Пытаясь сделать поддержку автоматической, они сделали это до смешного сложным. Я просто хочу поддержать es2018 и больше ничего. для моего внутреннего веб-приложения и независимо от того, что я положил в tsconfig и browerlist, я получаю 2 набора файлов.
Это сломано, и даже если это не было непонятно, если вы спросите меня. Различная нагрузка должна быть в состоянии управляться переключателем как:
diffMode: отключено | включено | список браузеров
Ответ 4
В настоящее время многие люди генерируют пакет es5, потому что @angular/cli не считает последний Edge (т.е. Edge 18) совместимым с es2015-модулями: https://github.com/angular/angular-cli/issues/14580.
Грязное исправление - исключить Edge из списка поддерживаемых вами браузеров (в файле browserslist
). Эта проблема должна быть исправлена, если вы обновитесь до @angular/cli 8.1.0.
Ответ 5
Мне удалось решить для моего проекта, используя Angular 8.1.1, добавив ключ "browserslist" в package.json
. (Размещается на верхнем уровне, так же, как "имя", "зависимости" и т.д.)
"browserslist": [
"last 2 Chrome versions"
]
Этот случай работает в определенных случаях, когда вам нужно только приложение для работы в Chrome. Если вам нужно больше совместимости с браузерами, ознакомьтесь с другими вариантами в документации по реализации здесь: https://www.npmjs.com/package/browserslist
Ответ 6
Ни один из этих ответов не работал для меня на @angular/cli 8.3.8
. Используя npx browserslist
, я увидел, что в списке было больше браузеров, чем было актуально для ответов Qaru.
Для простоты и обеспечения того, чтобы дифференциальная загрузка не пыталась собрать для es5
, вы можете настроить browserslist
на использование только 1 более старой (но все еще совместимой с es6/es2015
) версии браузера
# we only want es2015 compliant browsers https://caniuse.com/#feat=es6
# just use one as representative for all
Chrome >= 61
Ответ 7
попробуйте изменить цель tsconfig.json
с es2015
обратно на es5
, это отключит дифференциальную нагрузку.