Связанная функция Webpack4 не определена - PullRequest
0 голосов
/ 14 июля 2020

Я сделал бандл с помощью webpack4. Создание файла пакета - идеальный вариант, но мой простой веб-сайт не работает.

Я хочу выполнить функцию getApple () после загрузки html страницы. Но что я получаю, так это то, что функция сообщения об ошибке не определена.

Ниже мой исходный код.

// index.js

function getApple () {
    console.log('getApple');
}
// ./dist/main.js
! function(t) {
    var a = {};

    function o(e) {
        if (a[e]) return a[e].exports;
        var n = a[e] = {
            i: e,
            l: !1,
            exports: {}
        };
        return t[e].call(n.exports, n, n.exports, o), n.l = !0, n.exports
    }
    o.m = t, o.c = a, o.d = function(e, n, t) {
        o.o(e, n) || Object.defineProperty(e, n, {
            enumerable: !0,
            get: t
        })
    }, o.r = function(e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(e, "__esModule", {
            value: !0
        })
    }, o.t = function(n, e) {
        if (1 & e && (n = o(n)), 8 & e) return n;
        if (4 & e && "object" == typeof n && n && n.__esModule) return n;
        var t = Object.create(null);
        if (o.r(t), Object.defineProperty(t, "default", {
                enumerable: !0,
                value: n
            }), 2 & e && "string" != typeof n)
            for (var a in n) o.d(t, a, function(e) {
                return n[e]
            }.bind(null, a));
        return t
    }, o.n = function(e) {
        var n = e && e.__esModule ? function() {
            return e.default
        } : function() {
            return e
        };
        return o.d(n, "a", n), n
    }, o.o = function(e, n) {
        return Object.prototype.hasOwnProperty.call(e, n)
    }, o.p = "", o(o.s = 0)
}({
    "./index.js": function(module, __webpack_exports__, __webpack_require__) {
            "use strict";
            eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/polyfill */ "./node_modules/@babel/polyfill/lib/index.js");\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_polyfill__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getApple () {console.log('getApple');}
...
// index.php
<head>
    <script type="text/javascript" src="./dist/main.js<?php echo '?version=' . $_versionCode ?>"></script>
</head>
<body>
    <script>getApple(); // not working: Uncaught ReferenceError: getApple is not defined</script>
</body>

Кто-нибудь поможет мне, пожалуйста ....

1 Ответ

1 голос
/ 14 июля 2020

Кажется, ваша функция находится в самом модуле, что означает, что вы не можете получить ее через объект окна, если sh не опубликовали ее. Итак, чтобы вызвать это, вам, возможно, придется вызвать свою функцию внутри модуля или подождать, пока загрузится ваш сайт:

function getApple () {
  console.log('getApple');
}

getApple()

// OR

window.onload = () => getApple()

Или, если вы хотите зарегистрировать свою функцию в окне, вызывайте позже, как вы:

function getApple () {
  console.log('getApple');
}

window.getApple = getApple;
...