2015-01-26 40 views

回答

2

默認情況下,可以通過運行npm install less安裝的命令行編譯器(lessc)將單個Less文件編譯爲single.css文件。

根據您的項目結構和較少的文件,您應該選擇如何編譯所有Less文件。

當你想將每個Less文件編譯成一個CSS文件時,你可以編寫一些命令行腳本來迭代你的文件,並通過調用lessc編譯器來編譯每一個文件。也許你應該更好地考慮使用一個任務跑步者,例如無g or或者咕嚕咕嚕。

在大多數情況下,不同文件中的較少代碼是相關的,一個文件定義變量和mixin用於其他文件等等。對於這種情況,你可以創建導入其他文件的單個文件project.less:

project.less: 

@import "variable.less"; 
@import "theme.less"; 

現在,你將不得不只編譯project.less。您可以通過運行lessc project.less project.css來完成此操作。上面的命令再次將你的Less代碼編譯成一個CSS。

要回答你的問題只是理論上的,當你的減檔不依賴於對方,你只希望他們都編譯成一個CSS文件,你可以(在Linux/UNIX)運行:

paste -s less/*.less | lessc - > css/project.css

+0

非常感謝,我沒有意識到只有一個文件被編譯,我試圖編譯所有較少的文件:/ – 2015-01-27 08:12:12

0

我發現這個問題,當我在尋找類似的任務的解決方案,這是我的編譯最終shell命令:

ls PATH_TO_LESS/*.less | xargs -I {} echo "printf 'Start compile file {}' &&" node_modules/less/bin/lessc --clean-css --relative-urls {} "{}# && echo ' - DONE'" | sed 's/\.less#/.css/g' | bash 

該命令從給定的路徑都不太文件編譯成相同的路徑與更換擴展「萊s「=>」css「。

這有點長,所以如果有必要,我可以更多地解釋它。

有沒有信息日誌輸出相同的簡化的命令:

ls PATH_TO_LESS/*.less | xargs -I {} echo node_modules/less/bin/lessc --clean-css --relative-urls {} "{}# | sed 's/\.less#/.css/g' | bash 

最好的這個解決方案對我來說,你可以用純故宮作爲任務管理器,而不喜歡大口咕嚕或任何其他的依賴。我希望它能幫助別人。

2

您可以通過this文檔。雖然,我會解釋一點。

安裝lessc-each

$ npm install -g lessc-each 

然後,在命令行

$ lessc-each ‹dir1› ‹dir2› 

其中 是較少文件來編譯的目錄,並 是輸出文件的目錄。如果 不存在,它將自動創建。 這兩個目錄必須相對於命令行的當前路徑。

請參考上面給出的鏈接,因爲還有一些限制,如文件名一樣,因爲以雙下劃線(__)開頭的文件名不會被編譯。