如何使用nodejs,express和less-middleware编译2 +种不同的LESS样式?

时间:2014-06-14 18:04:14

标签: node.js express less

是否可以将2个或更多不同的LESS样式编译为2个或更多不同的CSS样式,其中包含nodejs,express和less-middleware?

var less = require('less-middleware');

app.use(less({
    src: '/less',
    dest: '/css',
    pathRoot: path.join(__dirname, 'public'),
    compress: true
}));

LESS和CSS将是

style-one.less -> style-one.css
style-two.less -> style-two.css

1 个答案:

答案 0 :(得分:1)

事实上。这就是构建less-middleware的目的。中间件监视目标路径以查找.css文件的任何请求。当找到.css文件时,它会在source目录中查找匹配的.less文件,并使用它生成.css文件。

以下是使用最新版本的less-middleware的示例:

app.use(require('less-middleware')(path.join(__dirname, 'source', 'less'), {
  dest: path.join(__dirname, 'public'),
  options: {
    compiler: {
      compress: true
    }
  },
  preprocess: {
    path: function(pathname, req) {
      return pathname.replace('/css/', '/');
    }
  },
  debug: true,
  force: true
}));

启用debug后,您应该在控制台中看到类似的内容:

  pathname : /css/style.css
  source : /myWebsite/source/less/style.less
  destination : /myWebsite/public/css/style.css
GET /css/style.css 200 23ms - 87b

如果您在同一目录中请求另一个.css文件:

  pathname : /css/style2.css
  source : /myWebsite/source/less/style2.less
  destination : /myWebsite/public/css/style2.css
GET /css/style2.css 200 4ms - 87b

您可以在维基上看到更多examples