首页 > 解决方案 > 如何在 webpack 包中为 Rails 应用程序定义全局 javascript 方法

问题描述

我发现了很多关于在 Javascript 中使变量或函数全局化的问题(通常我理解这不是一个好习惯),但有时我们需要在整个应用程序中使用 JS 函数,通常在 Webpacker 中为我们的 Rails 5 应用程序执行此操作已完成像这样:

在一个useful_pack.js文件中

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

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

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

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

标签: javascriptruby-on-railswebpack

解决方案


要在全局范围内添加一个函数,使其在您的应用程序中可用,这是推荐的方法:

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

// or

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


推荐阅读