Webpack 4: Как вызвать глобальную функцию с аргументами? - PullRequest
0 голосов
/ 21 октября 2018

Я пишу новый сценарий сборки для своего проекта с использованием 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 }

, и в моем файле entry.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

Я пробовал, нет ошибок сборки, но я получаю ошибку в консолипоговорка

"Uncaught TypeError: exampleFunction не является функцией"

Есть идеи о том, как решить эту проблему?Кстати, я новичок в использовании Webpack.

1 Ответ

0 голосов
/ 21 октября 2018

Благодаря подсказке @ CertainPerformance я добавил ключевое слово export в функцию exampleFunction(arg1), которое должно выглядеть следующим образом:

export exampleFunction(arg1){
   // something
}

Импортировал функцию в другой файл .js:

import {exampleFunction} from './somescript';

А потом все заработало!:)

Так получается, я кое-чему научился за день!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...