2015-03-25 31 views
1

在Laravel 5我試圖爲我的前端網站和後端網站(cms)創建兩個不同的css文件。源文件位於兩個不同的目錄中。Laravel Elixir Gulp混合兩個單獨的較少文件

第一後端

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

只有最後一個(後端)被執行。當我將最後兩行放在註釋中時,第一個(前端)被執行。現在好了,因爲後端樣式不應該經常更改,但將多個資源文件夾中少量文件混合到多個目標文件夾將會非常好。

+0

感謝,'elixir.config.assetsDir'爲我做了竅門! – pascalvgemert 2015-05-22 12:41:42

回答

0

嘗試:

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

嗨傑弗裏,謝謝,但在我的例子中不起作用。我認爲這與資源文件夾不同有關。這是一個可惜的長生不接受兩個mix.less電話。 – Klaaz 2015-03-28 15:48:35

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都可以指向任何你想要的地方。

您可以直接在資源根的最高水平不分裂,但它仍然允許一些分離,一切都在一個一飲而盡編譯。

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