Laravel elixir компилирует несколько файлов меньше

У меня есть эти два файла в папке resources/assets/less style.less и admin/style.less. Я хочу скомпилировать эти файлы по разным путям следующим образом:

style.less скомпилировано в public/css/

а другой скомпилирован в public/admin/styles/

это то, что я сделал в gulpfile.js

elixir(function(mix) {
    mix.less('style.less', 'public/css/');
    mix.less('admin/style.less', 'public/admin/styles/');
});

но это компилирует только один файл. В чем проблема и как я могу решить эту проблему?


person Mohamed Nagy    schedule 29.03.2015    source источник


Ответы (2)


У меня есть проект, который компилирует два разных файла less в два разных файла css. Единственная разница, которую я вижу, заключается в том, что я указываю полный путь назначения, включая имя файла.

Итак, для вашего случая это будет:

elixir(function(mix) {
    mix.less('style.less', 'public/css/style.css')
       .less('admin/style.less', 'public/admin/styles/style.css');
});
person Idob    schedule 05.07.2017

Я еще не получил ответа на это. Но пробовал несколько альтернатив, думаю поделится.

Я думал, что мы можем сделать, как показано ниже

elixir(function(mix) {
    mix.less('style.less', 'public/css/')
       .less('admin/style.less', 'public/admin/styles/');
});

Но, согласно документации, мы не можем многократно вызывать метод sass или less. Таким образом, компилируется только последний файл less (в данном случае admin/style.css).

Мы можем сделать так

elixir(function(mix) {
    mix.less(['style.less', 'admin/style2.less'], 'public/css/');
});

но это скомпилирует оба в одну папку.

Надеясь узнать, как мы можем сделать это с разными папками.

Пробовал копировать второй файл в отдельную папку, тоже не работает

elixir(function(mix) {
    mix.less(['style.less', 'admin/style2.less'], 'public/css/')
       .copy('public/css/style2.css', 'public/admin/style.css');
});

Вероятно, это связано с тем, что каждый запрос является асинхронным, и когда копия вызывается, в этот раз style2.css еще не готов.

person Sameer    schedule 29.03.2015
comment
Вы уверены, что это сработает? Насколько я знаю, для sass это не так. - person Marcin Nabiałek; 29.03.2015
comment
Извините, Марчин, это не так. Похоже, мы можем использовать только один экземпляр функции less или sass в соответствии с документацией. Я забираю свой ответ. Я предполагал, что будет. Извиняюсь! - person Sameer; 29.03.2015
comment
для less/sass вы можете импортировать один less/sass в другой. но это работает для одного формата файла, очевидно. - person astroanu; 25.08.2015