我想使用fs或replace替换css文件中的确切变量值,我已经搜索了足够多的内容,但我只找到了有关在fs和replace中替换文件的信息,下面是我尝试这样做的代码,但我想替换css文件中的变量
//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文件,我想用我从客户端获得的主题颜色替换.background-color中的颜色
.background-color{
color:black;
}
最佳答案
您可以使用类似 css-parser
的内容:
.background-color{
color:black;
}
.menu-color{
color:black;
}
解析,并以 JSON 形式获取传入对象,找到所需的 vaue 属性(color: black
)的选择器(background-color
),将其替换与必要的(颜色:时间颜色
),并转换回文本:
{ "type": "stylesheet",
"stylesheet": {
"rules": [
{ /.../
"selectors": [ ".background-color" ],
"declarations": [
{ /.../
"property": "color",
"value": "black", // => `timecolor`
/.../
}
}
], /.../
}
},
{ /.../
"selectors": [ ".menu-color" ],
"declarations": [
{ /.../
"property": "color",
"value": "black",
/.../
}
}
], /.../
}
},
], /.../
}
关于angularjs - 在 Node js中将服务器内部的数据从一个文件发送到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218454/