我在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/');
});
但这只编译一个文件。 问题是什么?如何解决这个问题?
答案 0 :(得分:1)
我有一个项目可以将两个不同的文件编译为两个不同的css文件。 我看到的唯一区别是我指定了完整的目标路径,包括文件名。
因此,对于您的情况,它将是:
elixir(function(mix) {
mix.less('style.less', 'public/css/style.css')
.less('admin/style.less', 'public/admin/styles/style.css');
});
答案 1 :(得分:0)
我还没有得到答案。但是已经尝试了一些替代方案,思想会分享。
我以为我们可以像下面这样做
elixir(function(mix) {
mix.less('style.less', 'public/css/')
.less('admin/style.less', 'public/admin/styles/');
});
但根据documentation,我们不能多次调用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还没有准备好。
答案 2 :(得分:0)
mix.less('resources/assets/less/app.scss', 'public/css').
less('resources/assets/less/admin/style.less', 'public/admin/styles');