2016-05-27 59 views
1

從命令行使用時,節點sass的文檔無可否認地有點簡單。我目前對使用NPM腳本作爲我的構建工具感興趣。我有一個項目,有許多組件按功能組織。每個功能都是獨立的文件夾。有更大的組件包含更小的組件,並且其中任何數量的組件都將擁有自己的.scss文件。如何在深度嵌套的目錄結構上使用node-sass?

我遇到的問題是,文檔不清楚如何使用node-sass輕鬆地將所有這些文件編譯到一個文件。

有一種方法可以從一個目錄編譯.scss文件並將其放入另一個目錄,但這會將它們保留爲單個文件。還有一個建議使用貓cat <input> | node-sass > <output>,但cat不是遞歸的,也不使用小球,所以你得到的最多是一個等級的css。

有沒有一種方法可以使用node-sass來遞歸查看給定目錄的所有文件並將它們編譯爲單個css樣式表?

回答

0

到目前爲止我發現的最好的方法是有點鈍。

您使用find遞歸找到所有正確的文件,那麼獲取輸出到cat這使所有的在一起,後來終於到node-sass並輸出到最終的文件。

find src/apps/section -name '*.scss' -print0 | xargs -0 cat | node-sass > ./dist/css/section.css 

理想的情況下,節點SASS應該接受一個水珠和的,結果操作,但它要麼不夠成熟,還是球隊沒有着力打造這個功能。國際海事組織,任何類型的編譯器,無論是HTML模板,JS transpilation或縮小或任何應該能夠接受一個glob並輸出單個文件。似乎不是邊緣案例......但我知道什麼。

節點sass確實有一個遞歸選項,但是當前的文檔說這只是爲了看。關於這個選項有一個discussion,但是爲什麼多文件編譯不是一個有針對性的功能(源代碼等)有一些原因。 :/

我個人希望有更多的工具具有更好或更高級的文件處理能力,並讓我將我的所有觀看權限委託給像npm-script-watcher這樣的單個腳本。它監視並觸發腳本,就是這樣。一個文件的更改可以觸發單一的皮棉,構建和測試。它似乎比linter的watcher標誌,構建者的觀察者標誌和測試者的觀察者更好,然後爲每個腳本重複腳本,以防萬一我只想運行lint,構建或測試一次而不啓動其監視功能。