在node.js
环境中,而不是stylus
每次生成.css
,而是希望将.css
文件写入由{{1}提供的目录}}
似乎版本化名称的一部分,例如nginx
,然后client-<unixTime>.css
会很高兴,页面缓存也能正常工作。
是否有任何现有的工具可以帮助解决这个问题?
答案 0 :(得分:2)
没有意识到stylus
也是一个可以一次性运行或作为恶魔运行的可执行文件。在任何一种情况下,都会将.styl
文件转换为.css
,并将它们放在您选择的目录中。
,以获取可执行文件
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编辑