Документация для @ babel / polyfill содержит следующее примечание:
Если вы ищете что-то, что не изменит глобальные переменные, которые будут использоваться в инструменте / библиотекеИзвлеките плагин transform-runtime .
В документации transform-runtime указано следующее:
Хотя это [@ babel / polyfill using] может быть подходящим для приложения или инструмента командной строки, оно становится проблемой, если ваш код представляет собой библиотеку, которую вы собираетесь публиковать для использования другими пользователями, или если вы не можете точно контролировать средув котором будет выполняться ваш код.
Вообще говоря, многие статьи, объясняющие использование полифиллов, говорят, что использование может хотеть использовать другое решение , если вызаботиться о загрязнении глобального пространства имен .
В моем понимании большинство полифилов загружаются условно.Если реализация уже существует, полизаполнение не будет перезаписывать ее.Мой вопрос: при каких обстоятельствах полифиллы во внешнем скрипте могут привести к поломке существующего сайта?Единственная причина, которую я смог найти до сих пор, заключается в том, что внешний скрипт может загрузить полизаполнение раньше, чем код в самом веб-сайте.Это может привести к проблемам, но если эти полифилы основаны на веб-стандартах, их поведение должно быть таким же.Какова вероятность того, что по-прежнему существуют серьезные конфликты?
Я нашел интересную дискуссию по этому поводу по проблеме github .Это в основном говорит о модулях в экосистеме NPM, тогда как в основном меня интересуют внешние скрипты, которые облегчают такие вещи, как виджеты или встраивания.
Любой личный опыт или ссылки на обсуждения и статьи по теме приветствуются!
ОБНОВЛЕНИЕ: Одна из основных причин этого вопроса состоит в том, что были некоторые проблемы с transform-runtime.В новой версии core-js и babel эти проблемы, похоже, решены.Несмотря на это, я все еще заинтересован в ответах на оригинальный вопрос выше.