Перевожу проект с RequireJS на webpack. В старом конфиге часть библиотек загружается с внешних сайтов: Яндекс.Метрика, скрипты ВК и другие. У трети посетителей реклама режется и эти скрипты не пройдут. На этот случай подставляются (
path fallbacks) пустышки с вызываемыми методами. Например, для Яндекс.Метрики такой конфиг:
requirejs.config({
paths:
"yametrika": [ "//mc.yandex.ru/metrika/watch", "lib/yamertika_dummy"],
В коде require'ится metrika и вызываются
Metrika.params()
,
Metrika.reachGoal()
и т.п. В случае, если AdBlock или подобный не пропустил скрипты Метрики, вызываются пустые методы в заглушке.
У webpack нашёл пока только секцию
externals, где можно указать модули, не включаемые в бандл.
Наверное, можно было бы обернуть каждый вызов методов Метрики в
try{..} catch()
. Но мне хотелось бы подставлять свою альтернативу.
Как лучше поступить с вероятностью блокировки загрузки некоторых таких модулей?