【发布时间】:2017-07-25 17:21:14
【问题描述】:
了解 Laravel Mix
我目前正在将我的一个网站迁移到 Laravel,以使其在未来更易于维护……我有丰富的使用 Laravel 构建 API 的经验,但我使用 Laravel 构建网站的经验非常有限因此,我需要其他专业人士的一点指导。
简而言之,如果有人能抽出几分钟时间,我将非常感谢以下非常简单问题的答案...
基于文件的 JS & CSS 而不是基于应用程序
我喜欢以特定方式编写我的 JS 和 CSS 文件,其中每个页面都有自己的与页面相关的特定文件。例如,about.php 可能具有以下依赖项:
JS:
jquery.jsany_other_third_party_library.js-
app.js(全局函数) -
about.js(页面特定功能)
CSS:
some_third_party_library.css-
app.css(全局样式) -
about.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 代码
这有什么关系吗?
【问题讨论】:
-
我认为首先你必须看看结果应该是什么样子。据我了解,您有一个非常简单的 js/css 结构,没有任何预处理器。因此,首先要缩小您的全局资产,然后按页面对其他资产进行分组。
-
@CerlinBoss 是的,你是对的,我的 JS/CSS 结构非常简单,事实上,我希望大多数网站都使用类似的东西。不过,我希望有一个文件,例如about-some_hash.js 包含 about.php 所需的所有代码。 CSS 也是如此...基本上每个页面都有一个 unique 组合和缩小文件。这有意义吗?
-
当然。正如我之前所说,您可以拥有一个全局 js (min) 文件和 css (min) 文件,然后分别拥有特定于页面的缩小 js 和 css 文件。 Laravel mix 除了
gulp会做的事情之外什么也没做。 -
@CerlinBoss 是的,但是应该将这些结合起来以减少请求的数量...本质上,我想知道的很简单,这样做是不是不好的做法:
mix.js(['resources/assets/js/app.js', 'resources/assets/js/about/about.js'], 'public/js/about/about.js')等每个页面...或者有更好的方法吗? -
@CerlinBoss 我将在此处发布我的新问题的链接,如果您愿意,请随时在此处回答:-D
标签: javascript node.js laravel bootstrapping laravel-mix