nodejs如何修改文件内容?

XuHanpeace
  • 6

需求是这样的,把A文件内的指定字符串替换成自定义的字符串

例如,把style.css文件里所有#fff替换成#666
现在只能做到提取出style.css里所有的字符串,再利用正则替换指定字符串,再一次性重新写入到style.css里面,这样做当然可以满足需求,但是特别想知道有没有更优雅一点的方法。
——找到tyle.css里面的#fff直接正则替换,而不是提取所有字符串,先正则替换,再重新覆盖原文件。

回复
阅读 12.7k
5 个回答

坐等 我也有类似的需求

YY0219
  • 3
新手上路,请多包涵

实现了吗 我也要实现这个功能

对于这样的需求,我们不妨换一种思路,,,使用 react 有一段时间了,看到把 style.css 文件里所有 #fff 替换成 #666,我的第一反应是用组件的 state 来管理这个 color,如果只用 node 的话,也可以使用模板引擎中的变量来控制,如果以上方式都不合你口味,最后建议单独生成一个设定 color 的 CSS 文件,类似一个自定义文件,或者说配置文件,若需变化,使用 fs 模块的 writeFile 来覆盖之前的设定,参考代码如下

import fs from 'fs';

const color = XX ? '#fff' : '#666';
const style = `
.XX {
    color: #${color}
}`;

fs.writeFile('style.css', style, (err) => {
  if (err) throw err;
  console.log('圆满解决颜色替换');
});

那就把文件作成配置文件的形式,如,XML,json,或yaml,通过封装的方法读取,处理起来要方便很多,单纯的没有模式的文本文件,处理起来还是挺不方便的

方法有很多,可以直接用child_process.exec的命令行方式, 可以用三方fs-extra,也可重新写content string文件流

宣传栏