Webpack 4:如何使用参数调用全局函数?

时间:2018-10-21 08:10:20

标签: javascript webpack

到目前为止,我正在使用Webpack 4为我的项目编写新的构建脚本,直到今天,当我必须使用参数调用全局函数时,我才遇到任何问题。

下面是一个示例,我没有为Google reCaptcha使用参数:

const enableFormButton = () => {
    var elements = "#form_submit_btn, #form_submit_btn_alt";
    $(elements).removeAttr("disabled");
    $(elements).css({"cursor":"pointer"});
    $(elements).removeClass("button button-3d button-red button-small").addClass("button button-3d button-green-invert button-small");
}

const recaptcha = document.querySelectorAll(".g-recaptcha");
recaptcha.forEach((captcha) => {
    captcha.setAttribute('data-callback', 'enableFormButton');
});

export { enableFormButton }

在我的索引文件index.js中,看起来像这样:

import {enableFormButton} from './some_js_file'
window.enableFormButton = enableFormButton

现在,这是我尝试使用带有参数的全局函数的方法:

const exampleFunction = (arg1) => {
// do something here
}

export {exampleFunction}

并在index.js文件中:

import {exampleFunction} from './some_js_file'
window.exampleFunction = exampleFunction

我尝试过,没有构建错误,但是在控制台中显示错误

  

“未捕获的TypeError:exampleFunction不是函数”

关于如何解决此问题的任何想法?顺便说一句,我是Webpack的新手。

1 个答案:

答案 0 :(得分:0)

由于@CertainPerformance的技巧,我在函数export中添加了exampleFunction(arg1)关键字,该关键字应如下所示:

export exampleFunction(arg1){
   // something
}

将该函数导入到另一个.js文件:

import {exampleFunction} from './somescript';

然后,它起作用了! :)

原来,我那天学到了一些东西!