使用Stylus编写由nginx提供服务的CSS文件

时间:2012-10-11 00:17:05

标签: node.js stylus

node.js环境中,而不是stylus每次生成.css,而是希望将.css文件写入由{{1}提供的目录}}

似乎版本化名称的一部分,例如nginx,然后client-<unixTime>.css会很高兴,页面缓存也能正常工作。

是否有任何现有的工具可以帮助解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

<{1>}中的

,以获取可执行文件

sudo npm install stylus -g

对我来说,使用node.js这种方式是首选,因为stylus的方式不灵活。而不是使用可执行文件解决。这也使开发和生产stylus middleware服务器更紧密地对齐,但不能解决版本控制问题。


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

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

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

(使用node(同步)

编译后使用非当前gz文件进行gzip编辑