У меня есть следующий модуль утилит, который я хочу сделать глобальным из myApp.utils
в Webpack.
var utils = (function(){
return {
isIOSDevice: function(){
return !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);
},
isMobileDevice: function(){
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
},
scrollToBottomOfPage: function(){
var e = (document.scrollingElement || document.body);
e.scrollTop = e.scrollHeight;
},
isSamsungBrowser: function(){
return !!navigator.userAgent.match(/SamsungBrowser/i)
},
debounce: function(func, wait, immediate){
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
};
})();
export {utils}
Затем в моем файле, который Webpack компилирует, чтобы требовать и импортировать модули (я новичок в Webpack иЯ не знаю имени этого файла) У меня есть следующий код:
import {utils} from "utilities";
var myApp = {};
(function(){
this.utils = utils;
}).apply(myApp);
global.myApp = myApp;
Это работает и позволяет мне выполнять любую из моих служебных функций из консоли браузера с помощью следующего кода:
myApp.utils.isSamsungBrowser();
Однако я не уверен, что способ, которым я сделал объект myApp
глобально доступным, является правильным, поскольку я создаю несколько областей действия myApp
(global.myApp & var myApp).