1

在 Laravel 5 中,我试图为我的前端站点和后端站点 (cms) 创建两个不同的 css 文件。源文件位于两个不同的目录中。

资产的默认值

首先是后端

elixir.config.assetsDir = 'resources/backend/';

elixir(function (mix) {
    mix.less('backend.less');
});

二是前端

elixir.config.assetsDir = 'resources/frontend/';

elixir(function (mix) {
    mix.less('frontend.less');
});

两者都在同一个 gulpfile.js 中。

这些是目录(Laravel 5)

resources
    backend
        less
            backend.less
    frontend
        less
            frontend.less

只有前端文件被编译到 public/css/frontend.css。

我也试过

mix.less('frontend.less', null, 'resources/frontend/');

虽然这适用于混合脚本文件,但不适用于混合较少的文件。

**更新 28-3-2015 **

我的问题似乎没有解决方案。当我做:

elixir.config.assetsDir = 'resources/frontend/';
mix.less('frontend.less');

elixir.config.assetsDir = 'resources/backend/';
mix.less('backend.less');

只有最后一个(后端)被执行。当我将最后两行放在注释中时,第一行(前端)被执行。现在没关系,因为后端样式不应该经常更改,但是将多个较少文件从多个资源文件夹混合到多个目标文件夹会非常好。

4

4 回答 4

0

尝试:

elixir(function(mix) {
    mix.less([
        'frontend/frontend.less',
        'backend/backend.less'
    ], null, './resources');
});
于 2015-03-27T14:07:45.780 回答
0

而不是您的变体:

elixir(function(mix) {
    elixir.config.assetsDir = 'resources/frontend/';
    mix.less('frontend.less');

    elixir.config.assetsDir = 'resources/backend/';
    mix.less('backend.less');
});

试试这个代码:

elixir.config.assetsDir = 'resources/frontend/';
elixir(function(mix) {
    mix.less('frontend.less');
});

elixir.config.assetsDir = 'resources/backend/';
elixir(function(mix) {
    mix.less('backend.less');
});
于 2015-06-04T10:25:36.383 回答
0

我发现以下工作:

elixir(function (mix) {

    mix
      .less(['app.less'], 'public/css/app.css')
      .less(['bootstrap.less'], 'public/css/bootstrap.css');

});

需要注意的关键事项:

  • 在目的地提供文件名,即写而不是public/css/app.csspublic/css/
  • 链接.less调用而不是进行两个单独的mix.less()调用

对我有用 laravel-elixir 版本3.4.2

于 2015-11-04T14:32:45.153 回答
0

我已经玩了几天了,到目前为止我发现的最佳选择如下。

首先将您的资源文件保留在默认位置,因此对于较少的文件,请查看resources/assets/less。然后将文件分成前端和后端资源,在特定资源文件夹中添加子文件夹,如下所示,

resources/assets/less/frontend/frontend.less
resources/assets/less/backend/backend.less

现在这样称呼每一个..

    mix.less('frontend/frontend.less', 'public/css/frontend/frontend.css');
    mix.less('backend/backend.less', 'public/css/backend/backend.css');

提供给每个 mix.less 的第二个参数可以指向您想要的任何位置。

您不能直接在资源根目录中的最高级别进行拆分,但它仍然允许进行一些分离,并且所有内容都在一个gulp中编译。

于 2015-07-28T21:09:07.517 回答