2015-08-26 34 views
1

我想使用fs或替換替換一個css文件中的確切變量值,我已經足夠的搜索,但我發現只有關於在fs和替換文件代替,下面是我試圖做這樣的代碼,但我想在css文件服務器內的數據從一個文件發送到節點js的另一個文件

//to main.css 
    var css = selectedTemplatePath + '/css/'; 
    var mainCss = css + '/main.css'; 

    var themecolor = new ThemeColor(req.body.color); 
    themecolor.color = color; 
    themecolor.savecolor(function(err, app){ 

     fs.stat(mainCss, function(err, stat){ 
      var searchApp = { 
       _id: appId 
      }; 

      mainCss.findOne(searchApp, function(err, app){ 
       if(err) return console.error(err); 
       replaceThemecolor(app, themecolor); 
       console.log("k"); 
      }); 



     }); 
     function replaceThemecolor(themecolor) { 
      fs.readFile(mainCss, 'utf-8', 
       function(err, data) { 
        if (err) { 
         return console.log(err); 
        } 

        var result = data.replace('black', themecolor); 

        fs.writeFile(mainCss, result, 'utf-8', function (err) { 
         if (err) return console.log(err) 
         .success("success"); 
         console.log('Success'); 
        }); 
       }); 
     }; 

下面來代替一個變量是CSS文件,我想用替換裝置技術領域色色themecolor我從客戶端獲得

.background-color{ 
     color:black; 
    } 

回答

1

您可以使用類似css-parser

.background-color{ 
     color:black; 
} 

.menu-color{ 
     color:black; 
} 

解析,並採取傳入對象在形式JSON,找到選擇器(background-color)到所需vaue性質(color: black),以及必要的(color: timecolor)替換它,並轉換回文本:

{ "type": "stylesheet", 
    "stylesheet": { 
    "rules": [ 
     { /.../ 
     "selectors": [ ".background-color" ], 
     "declarations": [ 
      { /.../ 
      "property": "color", 
      "value": "black", // => `timecolor` 
      /.../ 
      } 
      } 
     ], /.../ 
     } 
     }, 
     { /.../ 
     "selectors": [ ".menu-color" ], 
     "declarations": [ 
      { /.../ 
      "property": "color", 
      "value": "black", 
      /.../ 
      } 
      } 
     ], /.../ 
     } 
     }, 
    ], /.../ 
} 

http://iamdustan.com/reworkcss_ast_explorer/#/NYrDzAOEqH/1

+0

我想做的事情在我的js文件的變化。我想通過js文件更改變量值而不是json – shamila

+0

@adithya將JSON轉換回文本CSS有什麼問題? –

+0

我想在上面提到的js文件中包含任何更改,在js文件中我已經嘗試了上面的一些編碼。是不是可以使用fs更改變量值? – shamila

相關問題