在Laravel 5.4中,scriptsIn函数在哪里?
在Laravel 5.4中,scriptsIn函数在哪里?
在Laravel 5.3中,我使用scriptsIn
函数将assets/js
文件夹中的所有Javascript文件合并。我使用AngularJS 1.x框架来编写具有以下结构的js文件:
--resources\ -----assets\ --------js\ -----------app.js -----------controllers\ -----------------....js -----------directives\...
我使用Laravel 5.3中的Elixir来合并所有js文件:
elixir(function(mix) { mix.sass('app.scss'); mix.scriptsIn('resources/assets/js'); });
然而,当我升级到Laravel 5.4时,不再支持Elixir。取而代之的是使用Laravel Mix。因此,scriptsIn
函数不可用。在Laravel 5.4中是否有任何具有相同作用的函数?如何合并所有js文件?
Where is the scriptsIn function in Laravel 5.4?
在 Laravel 5.4 中,使用 scriptsIn 函数的位置和用法有所改变。下面是一个基本示例,可以帮助你完成你的需求:
首先,在 webpack.mix.js 文件中引入 laravel-mix:
let mix = require('laravel-mix');
然后,使用 mix.sass 和 mix.js 方法来编译和打包你的文件:
mix.sass('src/app.sass', 'dist') .js('src/app.js', 'public');
在这个例子中,我们将 sass 文件编译为 dist 目录下的 app.css 文件,将 js 文件打包为 public 目录下的 app.js 文件。
你可以根据你的项目目录结构来调整路径。
如果你在使用 Angularjs,你可能需要将你的 controllers 文件导入到 app.js 文件中。你可以参考以下链接中的解决方案:
在更新到Laravel 5.4版本时,我遇到了相同的问题。之前的代码如下:
elixir(function(mix) { mix.sass('app.scss'); mix.scriptsIn('resources/assets/js'); });
现在的解决方法如下:
const { mix } = require('laravel-mix'); mix.sass('app.scss') .combine('resources/assets/js');
在Laravel 5.4版本中,`scriptsIn`函数被替换为`combine`函数来实现相同的功能。通过使用新的解决方法,我们可以继续在代码中引入和组合JavaScript文件。