nodejs如何修改文件内容?

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

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

阅读 15.3k
5 个回答

坐等 我也有类似的需求

新手上路,请多包涵

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

对于这样的需求,我们不妨换一种思路,,,使用 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文件流

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题