用Stylus编写一个由nginx服务的CSS文件

node.js环境中,而不是每次生成.cssstylus ,都希望将.css文件写入由nginx提供服务的目录。

似乎版本化的一部分的名称,例如client-<unixTime>.css ,那么nginx会很高兴,页面caching将正常工作。

有没有现成的工具可以帮助这个?

没有意识到stylus也是可以一次运行或作为恶魔的可执行文件。 在任何情况下都会将.styl文件转换为.css文件,并将其放入您select的目录中。

node.js ,获取可执行文件

 sudo npm安装手写笔-g

对于我来说,使用stylus这种方式是非常受欢迎的,因为stylus middleware的方式不灵活。 而不是解决,使用可执行文件。 这也使得开发和生产node服务器更紧密地alignment,但是并没有解决版本问题。


这里是我编译一个文件(同步)的函数:

 var stylus = require('stylus'),
     nib = require('nib');

 //编译手写笔
 exports.css = function(fn,out){
   var buf = fs.readFileSync(fn,'utf8');
   var oldCode =(fs.existsSync(out))?  fs.readFileSync(out,'utf8'):'none';
  手写笔(buf)
     .set('filename',fn)
     .use(nib())
     .render(function(err,newCode){
       (err)throw('stylus err:'+ err);
       if(oldCode!= newCode){
         console.log('stylus:creating'+ out);
         fs.writeFileSync(out,newCode,'utf8');
       }
     });
 };

(使用compress-buffer (sync)编译使用非当前gz文件的gzip后,