Laravel-混合,Javascript 和范围

Laravel-mix, Javascript and scope

我在 laravel 框架上访问 javascript 中的函数时遇到问题。我有一个名为 pile.js 的文件,在该文件中我有一个如下所示的函数:

    function initPile(json) {
       ...
    }

它是 "compiled" 使用 laravel-mix 并放置在我的 public/js 文件夹中并包含在其中:

<script src="{{ asset('/js/pile.js') }}" type="text/javascript" defer></script>

但是当我尝试像这样使用文件中的函数时:

        <script type="text/javascript" defer>

            initPile('@json($data)');

         </script>

我收到错误:ReferenceError: initPile is not defined

我试过 google 这个错误,所有结果都说我要使用

将它分配给全局变量
window.initPile = function(json) { ... }

然后这样称呼它

window.initPile('@json($data)');

但这只会导致相同的错误.....

我找到了解决方案,解决方案是将它分配给 window 但是因为我在我的两个脚本标记中都推迟了函数在声明之前被调用。