如何在 Laravel webpack.mix.js 中添加全局函数?

tar*_*ali 1 javascript laravel webpack laravel-mix

我正在使用 Laravel mix 来编译我的资产并将它们组合成单个文件。我创建了一个新的 js 文件并在其中编写了一些方法。我将此文件与 app.js 文件结合在一起。当我尝试调用这些方法时,我的刀片文件中出现错误function not defined。我无法访问这些方法。

请帮我调用这些方法。

Laravel 混合代码

mix.js([ 'js/app.js',
         'js/custom.js'
        ], 'public/js'),
.....
Run Code Online (Sandbox Code Playgroud)

自定义.js

function test(){
  alert('test')
}
Run Code Online (Sandbox Code Playgroud)

测试刀片.php

<script type="text/javascript" src="app.js"></script>
<script type="text/javascript">
    test();
</script>
Run Code Online (Sandbox Code Playgroud)

错误:未定义测试

Moh*_*ara 7

只需将其分配给window。所以在你的 Custom.js 中

window.test = function(){
  alert('test')
}
Run Code Online (Sandbox Code Playgroud)

并在您的 test.blade.php 中使用它:

<script type="text/javascript">
    window.test();
</script>
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 0

不只是将新文件连接到更app.js干净的方法(恕我直言)的末尾,而是让您保持webpack.mix.js不变。

创建您的custom.js文件并只需在底部resources/assets/js添加require('./custom');resources/assets/js/app.js

这将是构建过程其余部分所必需的。