Mon objectif de nœud est de changer la couleur de laModifier certains contenus d'un fichier existant sans supprimer les autres contenus dans le fichier dans
.made-easy-theme{
color:black
}
dans un fichier css avec une autre couleur. mais quand je change la couleur à l'aide fs.writeFile il efface tous les autres contenus dans le fichier css et remplacez uniquement les
.made-easy-theme{
color:black
}
Avant de changer la couleur du fichier css ci-dessous comprend le contenu,
@charset "utf-8";
@import url(http://fonts.googleapis.com/css?family=Lato:300,400,700);
@import url(http://weloveiconfonts.com/api/?family=entypo);
/* entypo */
[class*="entypo-"]:before {
font-family: 'entypo', sans-serif;
}
.made-easy-theme{
color:black
}
* {
box-sizing: border-box;
}
.toggler {
color: #A1A1A4;
font-size: 1.25em;
margin-left: 8px;
text-align: center;
cursor: pointer;
}
.toggler.active {
color: #000;
}
.cardss {
list-style: none;
padding-right: 10px;
padding-left: 10px;
text-align: left;
-webkit-overflow-scrolling: touch;
max-width: 100%;
-webkit-backface-visibility: hidden;
}
mais après un changement de couleur, il ne comprend que,
.made-easy-theme{color:hsl(0, 22%, 51%)}
hsl (0, 22%, 51%) (couleur que je reçoive à partir du côté client). js Mon qui inclut le code pour modifier le fichier css est ci-dessous,
var main = 'temp/' + userId + '/templates/' + appId + '/css/main.css';
var color = req.body.color;
function replaceThemecolor(color) {
fs.readFile(main, 'utf-8',
function (err, data) {
var searchStr = ".made-easy-theme{color:black}";
console.log(searchStr);
var result = searchStr.replace(new RegExp('black', ''), color);
fs.writeFile(main, result, 'utf-8', function (err) {
console.log("kk");
console.log(color);
console.log(result);
if (err) return console.log(err);
});
});
}
Je pense que la faute est avec la méthode fs.writeFile. Je ne sais pas comment obtenir le bon résultat.
Je l'ai fait et je travaillais, mais certains conflits se produit. Lorsque vous essayez de remplacer la couleur deux fois, il ne va pas écraser, le résultat est comme.made-easy-theme { couleur: hsl (0, 44%, 45%) (0, 26%, 55%); } et quand j'essaie de remplacer d'autres variables comme font-family, ça ne marchera pas du tout – shamila
@adithya - il est dit dans ma réponse que cette solution ne fonctionne que pour les couleurs spécifiées par un nom tel que "noir". Vous n'avez pas demandé plus que cela. La regex devrait être changée si vous voulez que les couleurs 'hsl (...)' ou 'rgb (...)' fonctionnent. Avec la bonne regex, cela fonctionnera aussi pour font-family. Si vous pouvez promettre que la valeur de couleur est terminée avec un ';', il est beaucoup plus facile de faire l'expression rationnelle. – jfriend00
pouvez-vous au moins me donner un lien qui m'aide à changer mon regex en fonction de mes besoins – shamila