2013-10-21 95 views
2

我爲我的節點JS express應用程序使用less-middleware但是我遇到了一個問題,如果我更新我的screen.less文件,它不會重新編譯。爲了讓文件重新編譯,我必須刪除生成的.css文件並重新加載站點。節點JS less-middleware不自動編譯

任何想法,爲什麼會發生這種情況?

LESS編者

app.use(express.static(path.join(__dirname, 'public'))); // set static resource directory 
    app.use(require('less-middleware')({ 
     // LESS CSS compiler 
     src : path.join(__dirname, 'public'), 
     yuicompress : true 
    })); 

目錄結構:

public 
    stylesheets 
     _functions.less 
     _normalize.less 
     _params.less 
     screen.less 
app.js 
package.json 

任何幫助,將不勝感激!非常感謝。

+0

@JoachimIsaksson謝謝你的迴應,但這是關係到少js不是node.js少編譯器。 – Chris

+0

'src:path.join(__ dirname,'public'),'應該是'src:path.join(__ dirname,'public','stylesheets'),',no? – krasu

+0

@krasu這似乎不是它的工作方式。該代碼非常類似於較少中間件文檔記錄的解決方案 - https://github.com/emberfeather/less.js-middleware#express 此外,CSS似乎沒有編譯沒問題,問題是重新編譯是隻是沒有發生。 – Chris

回答

3

已經發現問題,並且被less-middleware引用。

基本上,在聲明靜態資源位置之前,您必須聲明較少的中間件。所以我的新的工作代碼現在如下

app.use(require('less-middleware')({ 
     // LESS CSS compiler 
     src : path.join(__dirname, 'public'), 
     yuicompress : true 
    })); 
    app.use(express.static(path.join(__dirname, 'public'))); // set static resource directory