2015-03-25 5 views
1

В Laravel 5 Я пытаюсь создать два разных файла css для моего сайта и сайта backend (cms). Исходные файлы находятся в двух разных каталогах.Laravel Elixir Gulp mix два раза меньше файлов

Значение по умолчанию для активов в

первый бэкэндом

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 

только файл внешнего интерфейса, скомпилированные с общественным/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'); 

Выполняется только последний (бэкэнд). Когда я помещаю последние две строки в комментарии, выполняется первый (frontend). Сейчас все в порядке, потому что бэкэнд-стили не должны меняться очень часто, но было бы очень приятно смешивать несколько файлов меньшего размера из нескольких папок ресурсов в несколько папок назначения.

+0

Спасибо, 'elixir.config.assetsDir' сделал трюк для меня! – pascalvgemert

ответ

0

Try:

elixir(function(mix) { 
    mix.less([ 
     'frontend/frontend.less', 
     'backend/backend.less' 
    ], null, './resources'); 
}); 
+0

Привет, Джеффри, спасибо, но это не работает в моем примере. Я думаю, что это имеет какое-то отношение к папкам ресурсов, которые отличаются друг от друга. Жаль, что эликсир не принимает два вызова mix.less. – Klaaz

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'); 
}); 
0

Я играл с этим в течение нескольких дней и лучший вариант, который я нашел до сих пор, заключается в следующем.

Сначала оставьте свои файлы ресурсов в местоположении по умолчанию, поэтому за меньшее количество файлов смотрите в ресурсов/активов/меньше. Затем, чтобы отделить файлы в передней и задней конечные ресурсы добавить вложенные папки в определенной папке ресурсов, как это так,

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.

0

Я нашел следующие работы:

elixir(function (mix) { 

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

}); 

ключевых вещей, чтобы заметить:

  • указать имя файла в пункте назначения, то есть писать public/css/app.css вместо public/css/
  • цепи в .less звонки вместо двух раздельных mix.less() звонки

Работает для меня с версией laravel-elixir 3.4.2