表达较少中间件而不编译

时间:2015-05-12 03:23:43

标签: node.js express

有人可以帮我解决我的css问题。我不知道为什么我的观点没有得到编译的更少

Index.js

// MIDDLEWARE
var express = require('express');
var less = require('less-middleware');
var app = express();

// LESS COMPILER
app.use(less('source/less', {
  "dest": 'public/stylesheets',
  "pathRoot": __dirname,
  "force": true,
  "render": {
    "yuicompress": true
  }
}));

// APP CONFIG
app.use(express.static(__dirname + '/public'));
app.set('views', 'views')
app.set('view engine', 'jade');

// ROUTES
app.get('/', function (req, res) {
  res.render('index');
});

// PAGE NOT FOUND
app.use(function(req, res, next) {
  res.status(404).send('Sorry cant find that!');
});

// WEB SERVER
var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://%s:%s', host, port);
});

Index.jade

html
  head
    title Hello
    link(src="stylesheets/global.css" type="text/css")
  body
    h1 Welcome

1 个答案:

答案 0 :(得分:2)

您可以阅读有关如何将中间件较少的src和dest目录设置为https://github.com/emberfeather/less.js-middleware/wiki/Examples的不同目录。但结果是:为了使事情相对简单,源和目标的相对路径必须相同。

我建议您将较少的源文件移出public以使其更容易,因为它们不应该按照原样提供。

在包含less-src目录的同一目录中创建public目录。在less-src内,创建一个stylesheets目录并将global.less放在那里。然后将您较少使用的中间件更改为:

app.use(lessMiddleware(__dirname + '/less-src', 
    {dest: __dirname + '/public'}));

这将有效。

如果您不喜欢stylesheets中的less-src目录,那么您需要查看有关在上面链接中预处理较少路径的资料。对我而言,在源代码布局方面,交易代码复杂性几乎没有增益。但如果它对你来说似乎有价值,那么你就是这样做的。