Express, Less 和 less-middleware

最近nodejs很火,作为一名front-end,决定跟上这把风。由于是孤军奋战,周围也没有同僚共同探讨里面的技术实现。所以,遇到一些问题也只能google了。

今天打算使用express来编译less。

在网上找到了这个编译less的方法:

app.use(express.compiler({ src: __dirname + '/public', enable: ['less']}));
app.use(express.static(__dirname + '/public'));

立马拿下来试一下

结果控制台报错: 

has no method compiler

我插了,难不成express把这方法给废了?于是乎我就跑去github的express上找线索。发现在express的bin目录下的express文件发现了几段代码:

program
  ... //把一些代码省略了。
  .option('-c, --css <engine>', 'add stylesheet <engine> support (less|stylus) (defaults to plain css)')
  ...


switch (program.css) {
      case 'less':
        app = app.replace('{css}', eol + '  app.use(require(\'less-middleware\')({ src: __dirname + \'/public\' }));');
        break;
      case 'stylus':
        app = app.replace('{css}', eol + '  app.use(require(\'stylus\').middleware(__dirname + \'/public\'));');
        break;
      default:
        app = app.replace('{css}', '');
    }

好了找到方法了,原来是要引入“less-middleware” 这个模块来编译。而且还需要public目录下的样式文件夹改成“styles” ,要不然找不到,这点太不智能了。

不过还好最后成功编译。

你可能感兴趣的:(express)