在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');
仅执行最后一个(后端)。当我在注释中放置最后两行时,执行第一行(前端)。现在没关系,因为后端样式不应经常更改,但将多个资源文件夹中的少量文件混合到多个目标文件夹会非常好。
答案 0 :(得分:0)
尝试:
elixir(function(mix) {
mix.less([
'frontend/frontend.less',
'backend/backend.less'
], null, './resources');
});
答案 1 :(得分: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');
});
答案 2 :(得分: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 。
答案 3 :(得分: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