如何在rails应用程序的webpack包中定义全局javascript方法



我发现了许多关于在Javascript中使变量或函数全局化的问题(通常我认为这不是一个好的做法(,但有时我们需要在整个应用程序中使用JS函数,在我们的Rails 5应用程序的Webpacker中这样做通常是这样做的:

useful_pack.js文件中

function globalFunction() {
// some stuff
}
export {globalFunction }

然后在application.js中,我们导入pack&将全局函数绑定到窗口:

import { globalFunction } from  useful_pack.js
// some code
window.globalFunction = globalFunction

在这种情况下,绑定到窗口有什么主要的缺点吗?有没有更标准的方法来利用webpacker中的全局JS函数?(这样我就可以在rails应用程序的任何视图中调用该函数(

要在全局范围内添加一个函数,使其在整个应用程序中可用,建议使用以下方法:

global.globalFunction = function() {
// some stuff
};
// or
const globalFunction = () => {
// some stuff
};
global.globalFunction = globalFunction;

最新更新