2012-03-19 42 views
0

我使用Stylus CSS預處理器,控制檯編譯器不是JavaScript中間件。我正在尋找某種路徑前綴配置。手寫筆 - 設置爲cli編譯的url()前綴

所以,當我寫(在foo.styl):

#lolipop 
    background: url(images/lolipop.png) 

,並設置前綴static/,我希望它編譯成:

#lolipop { 
    background: url("static/images/lolipop.png"); 
} 

這可能與手寫筆的控制檯編譯只要?

回答

0
prefix = 'static/' 

#lolipop 
    background: url(prefix + images/lolipop.png) 

也許有更好的解決方案,但這個工作。

+1

我不太喜歡這個解決方案。在SASS中有一個由cli編譯器讀取的配置文件sass.config.rb。您可以爲url(),@ font-face等設置url /文件系統前綴。如何定製編譯器的輸出非常方便。那麼,我正在考慮在問題跟蹤器中填寫功能rq。無論如何感謝您的回答。 – srigi 2012-03-22 15:26:18

4

編輯:由於您使用手寫筆可執行文件,因此您的解決方案。它似乎完全沒有證件,但實際上你可以--use url並沿着選項字符串傳遞,就像這樣:

stylus --use url --with "{ paths: [ './static' ] }" 

此功能從stylus url() documentation的工作原理類似於url並採取相同的選項:

例如,如果我們的圖像存在於./public/images中,並且我們希望使用url(images/tobi.png),我們可以通過公共目錄傳遞路徑,這將成爲查找過程的一部分。如果我們想要使用url(tobi.png),我們會傳遞路徑:[__dirname +'/ public/images']。

stylus(str) 
    .set('filename', __dirname + '/css/test.styl') 
    .define('url', stylus.url({ paths: [__dirname + '/public'] })) 
    .render(function(err, css){ 

});