在Laravel 5.4中,scriptsIn函数在哪里?

12 浏览
0 Comments

在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文件?

0
0 Comments

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 文件中。你可以参考以下链接中的解决方案:

https://stackoverflow.com/a/26497742/3887342

https://stackoverflow.com/a/27500432/3887342

0
0 Comments

在更新到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文件。

0