как отключить дифференциальную нагрузку в Angular v8? - программирование

как отключить дифференциальную нагрузку в Angular v8?

В Angular-CLI v8 реализована дифференциальная нагрузка. Но мне не нужны файлы, созданные es5. Я хочу уменьшить количество развертываний.

Я попробовал ниже. Но CLI сгенерировал файлы es5.

  • установил es5browsersupport: false в angular.json и получил ошибку.
  • исключить Chrome 41, IE 9-11 и ie_mob 11 из browserList.
4b9b3361

Ответ 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, это отключит дифференциальную нагрузку.