2017-05-31 149 views
0

我試圖使用npm工具和軟件包將LESS文件和ES6文件複製並轉換到另一個目錄。
這是我的基本結構:npm使用cpx複製和編譯LESS文件

-src 
    -components 
    -component1 
     component1.js // es6 code 
     styles.less 
    -component2 
     component2.js // es6 code 
     styles.less 
    -component3 
     component3.js // es6 code 
     styles.less 

,這是所需的新的目錄結構:

-lib 
    -component1 
    component1.js // es5 code 
    styles.css 
    -component2 
    component2.js // es5 code 
    styles.css 
    -component3 
    component3.js // es5 code 
    styles.css 

對於ES6 transpile我使用babel和它的偉大工程:

"build:js": "cross-env NODE_ENV=production babel ./src/components --out-dir ./lib --ignore spec.js" 

但我努力與LESS文件。我知道我可以使用cpx複製文件,並保持結構:

"build:less": "cpx \"./src/components/**/*.less\" ./lib" 

但我想複製它們在處理他們每個人,並把它編譯從LESSCSS
有一個-t參數爲通過管道傳遞的每個文件的模塊轉換,但我找不到合適的模塊來傳遞它們。
我試過lessclessify,但它看起來不太合適。

"build:less": "cpx \"./src/components/**/*.less\" ./lib -t [less_compiler_here?]" 

我不介意使用webpack或任何其他模式來實現此目的。

回答

0

回答我的問題在這裏
我沒能找到一個合適的解決方案,以我的情況。在測試了很多npm軟件包之後,我發現每個軟件包都提供了我的挑戰的一小部分解決方案,於是我決定編寫自己的解決方案。
lessc-glob
基本上它需要glob和從源複製結構(使用CPX)到目標,但它通過一less通過每個文件變換流。當然,它最終將文件擴展名更改爲.css。 這是一個非常適合我的確切挑戰的解決方案,但也許有人會覺得它有用。
如果你願意,可以隨時讓它變得更好。

+0

對我來說,它看起來像一個工具,如'gulp' /'grunt'和類似的用例。 –

+0

@ seven-phases-max可能是,但我認爲當他已經在npm-scripts上建立了他的整個項目(或者其他項目)時,我不認爲應該使用gulp或grunt。好吧,至少在我的情況是這樣的。 –