在WebPack捆绑包中加载Google Maps API回调脚本的问题



i具有一个函数 initMap(),该功能应该在Google Maps API完成加载时被调用。此功能管理我在Web应用中使用的地图的所有设置。

initMap()生活在一个名为init-map.js的文件中。

我正在迁移到WebPack,因此init-map.js现在使用require('./scripts/init-map.js包含在index.js中。

我遇到了一个错误InvalidValueError: initMap is not a function,但是当我使用自己的<script>标签加载init-map.js时,我不会收到错误。

原因错误:

<html>
    <head>
        ...
        <script src="bundle.js"></script> <!-- init-map.js is required in this file -->
    </head>
    <body>
        ....
        <script src="https://maps.googleapis.com/maps/api/js?key=🔑&callback=initMap" async defer></script>
    </body>
</html>

无问题的工作:

<html>
    <head>
        ...
        <script src="bundle.js"></script>
        <script src="./scripts/init-map.js"></script>
    </head>
    <body>
        ....
        <script src="https://maps.googleapis.com/maps/api/js?key=🔑&callback=initMap" async defer></script>
    </body>
</html>

我不明白如何使initMap()用于回调时可用于Google Maps API。

我也希望在index.js中管理init-map.js

我相信这是因为Bundler将您的Initmap函数的名称更改为单个字母,例如ef

请检查您的呼叫部分。是抛出404个错误吗?在检查元素 ->网络

尝试从" ./scripts/init-map.js"中使用"/scripts/init-map.js"或" scripts/init-map.js"

最新更新