2016-06-22 76 views
0

下面是我的node.js文件的一個片段 我想從LESS編譯代碼到CSS。 我缺少什麼LESS文件沒有得到編譯

app.use(lessMiddleware({ 
    src: path.join(__dirname, '/public/stylesheets/styles', 'less'), 
    dest: path.join(__dirname, '/public/stylesheets/css'), 
    prefix : '/stylesheets', 
})); 

當我刷新我的index.html,它拋出我下面的錯誤

TypeError: Arguments to path.join must be strings 
    at f (path.js:204:15) 
    at Object.filter (native) 
    at Object.exports.join (path.js:209:40) 
    at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\less-middleware\lib\mi 
ddleware.js:161:27 
    at Layer.handle [as handle_request] (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\n 
ode_modules\express\lib\router\layer.js:95:5) 
    at trim_prefix (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l 
ib\router\index.js:312:13) 
    at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\router\ind 
ex.js:280:7 
    at Function.process_params (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modul 
es\express\lib\router\index.js:330:12) 
    at next (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\rout 
er\index.js:271:10) 
    at expressInit (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l 
ib\middleware\init.js:33:5) 
TypeError: Arguments to path.join must be strings 
    at f (path.js:204:15) 
    at Object.filter (native) 
    at Object.exports.join (path.js:209:40) 
    at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\less-middleware\lib\mi 
ddleware.js:161:27 
    at Layer.handle [as handle_request] (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\n 
ode_modules\express\lib\router\layer.js:95:5) 
    at trim_prefix (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l 
ib\router\index.js:312:13) 
    at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\router\ind 
ex.js:280:7 
    at Function.process_params (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modul 
es\express\lib\router\index.js:330:12) 
    at next (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\rout 
er\index.js:271:10) 
    at expressInit (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l 
ib\middleware\init.js:33:5) 

請提供一個解決辦法或任何其他中間件。

回答

0

less-middleware function具有與您在代碼段中顯示的界面不同的界面。

看起來像這樣lessMiddleware(source, options),其中source是一個字符串,options是一個對象。當它試圖在source上調用path.join時,它會在here左右的地方出現,在您的情況下是對象。

您可以查看documentation of the middleware瞭解選項中的可接受參數。