将项目从RequireJS迁移到webpack,这是webpack的新功能。
某些库是从外部CDN加载的。 AdBlock等可防止某些客户端加载这些内容。在这种情况下,存在一个具有相同方法名称的本地伪对象,它们的用途不同或只是无效。 RequireJS中有一个path fallback选项。
我想知道如何使用Webpack实现相同的后备机制吗?
到目前为止,我仅定位externals部分来定义CDN加载的模块。
一些代码来说明这个问题。 Yandex.Metrika计数器的RequireJS配置:
requirejs.config({
paths:
"yametrika": [
"//mc.yandex.ru/metrika/watch",
"lib/yamertika_dummy"
],
假人lib/yamertika_dummy
(剥离):
define([], function () {
return {
reachGoal: function(){}
, params: function(){}
};
}
);
在此处,代码模块Metrika是必需的,并称为:
Metrika.params({...});
// ...
Metrika.reachGoal({...});
我看到一个选择,可以将每个调用包装到try..catch
中可能丢失的模块上。但理想情况下,我想提供替代品。