7

我在resources/assets/less文件夹style.lessadmin/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/');
});

但这只编译一个文件。有什么问题,我该如何解决这个问题?

4

3 回答 3

1

我有一个项目,将两个不同的 less 文件编译为两个不同的 css 文件。我看到的唯一区别是我指定了完整的目标路径,包括文件名。

因此,对于您的情况,它将是:

elixir(function(mix) {
    mix.less('style.less', 'public/css/style.css')
       .less('admin/style.less', 'public/admin/styles/style.css');
});
于 2017-07-05T17:39:42.580 回答
0

我还没有得到这个答案。但是已经尝试了一些替代方案,想到会分享。

我在想我们可以像下面那样做

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 还没有准备好。

于 2015-03-29T14:54:39.390 回答
0
mix.less('resources/assets/less/app.scss', 'public/css').
    less('resources/assets/less/admin/style.less', 'public/admin/styles');
于 2017-10-27T12:25:57.950 回答