最后通过快速运行咖啡将LESS编译到Node.js应用程序之后,我遇到了一个问题,我似乎没有想法:
对LESS文件的更改不会调用来自快递调用的LESS编译器的重新呈现。
在我的主app.coffee文件中,可以找到(按此顺序)
app.use exp.compiler { src: __dirname + '/public', dest: __dirname + '/public', enable: ['less'] }
app.use exp.methodOverride()
app.use exp.bodyParser()
app.use exp.cookieParser()
app.use exp.static __dirname + '/public'
之后,添加会话和中间件。
请求在重新启动应用程序时,不会将.less文件重新编译为.css的问题。
我尝试过交换exp.compiler
和exp.static
行,但除了第一个客户端请求发生的情况之外没有任何改变(简而言之,css文件已呈现但未传递)。
删除.css文件显然会得到将.less重新编译为.css的代码,但这不是我想象的那样的编译器。还有什么我可以做的吗?
答案 0 :(得分:1)
// Environment Respective Less Watch Script
if (app.settings.env === 'development') {
var stylesheets = fs.readdirSync(path.join(__dirname, 'views', 'stylesheets')).filter(function(f) {
return f.match(/\.less$/);
});
stylesheets.forEach(function(f) {
fs.watchFile(path.join(__dirname, 'views', 'stylesheets', '/' + f), function(c, p) {
if (c.mtime.getTime() !== p.mtime.getTime()) {
// Remove the existing CSS file
fs.unlinkSync(path.join(__dirname, 'public', 'stylesheets', 'bootstrap.css'));
console.log(' Successfully removed existing stylesheet for recompiling');
}
});
});
}
答案 1 :(得分:0)
研究显示,目前,没有-watch
- flag可以与express或lessc
内的编译器一起使用。所以重新编译内部express只有在事先手动删除css-Files时才有效。