了解 Laravel 混合

Understanding Laravel Mix

理解Laravel混合

我目前正在将我的一个网站迁移到 Laravel 以使其在未来更易于维护......我有丰富的构建 API 的经验使用 Laravel,但我使用 Laravel 构建网站的经验非常有限,因此我需要其他专业人士的一些指导。

简而言之,如果有人能给我几分钟的时间,我将非常感谢回答以下非常简单的问题...

基于文件的 JS & CSS 而不是基于应用程序

我喜欢以特定的方式编写我的 JS 和 CSS 文件,其中每个页面都有自己与该页面相关的特定文件。例如,about.php 可能具有以下依赖项:

JS:

CSS:

在我自己的框架上,以上将被合并并缩小为JS一个文件和CSS一个文件。据我了解,Laravel Mix 正是这样做的...

但是,据我所知,执行此操作的方法如下:

webpack.mix.js:

// About
mix.scripts([
    'resources/assets/js/app.js',
    'resources/assets/js/about/about.js'
], 'public/js/about/about.js');

很简单,我想知道的;以上是解决这个问题的正确方法吗?有没有更好、更有效的方法来为每个页面自动执行此操作?

bootstrap.js 和 app.js 文件是什么?

据我所知,这些文件只是加载依赖项,但这有点令人困惑,因为某些依赖项可能是特定于页面的...有人可以更详细地解释一下这些文件的用途吗?或者至少,它们之间有什么区别...

摆脱 Vue

我没有兴趣在我的项目中使用 Vue,所以我删除了以下文件:

/components/Example.vue

和 app.js

中的 Vue 代码

这有什么关系吗?

您会将所有样式和脚本打包成一个单独的文件,然后将它们缩小后提供给客户。

对于前端资产,调用mix.sass('resources/assets/sass/app.scss')。在样式的入口点中,您将能够根据需要使用 Sass 的 @import 'about'; 语法导入其他样式表。 (重命名其他 CSS 文件也以 .scss 结尾)。

对于您的后端资产,请致电 mix.js('resources/assets/js/app.js')。然后,类似地,您可以使用 import './about.js'; 导入其他 JavaScript 模块。你可能想查找 ES2015 模块,这样你就可以学习如何编写模块化 JavaScript.

通读 bootstrap.js 文件以了解 Laravel 默认情况下如何连接 jQuery 和 Vue。您不需要任何这些,因此请删除您不需要的任何内容,或者如果您不需要任何文件,请删除整个文件。

Vue 与 Laravel 开箱即用,但这只是一个建议,您可以将其替换为您自己选择的前端框架,或者将其撕掉并替换为空。由你决定。

编辑:长话短说;使用 mix.sassmix.js,阅读有关使用 Sass 和 ES2015 模块编写出色代码的内容。