写在最前
本次分享一个简易路径替换工具。功能很简单,重点在于掌握:- 递归遍历文件夹目录
- 正则替换目标内容
- 解压上传文件,返回更新后的压缩文件
源码地址:https://github.com/Aaaaaaaty/Blog/tree/master/fsPathSys
效果预览
结果对比图:
PS:后端支持匹配js、css、img、background-image的url的对应路径并进行分别替换,当前只是展示方便,前端只传递一个路径将所有匹配的源路径替换为目标路径。
整体流程
- 前端上传压缩包及需要替换的路径字段
- 后端解压缩
- 递归文件目录,找到.js/.css/.html文件并匹配替换路径
- 压缩整体文件,返回到前端
整体来说可能会遇到的难点在于对正则的使用,以及完成替换后将压缩的文件夹传回本地。以前没怎么写过正则正好借此机会来学习一波,同时对于文件夹(注意不是文件传输!)传输踩了一下坑。毕竟大部分时间做静态服务器我们是只需要返回单个文件不需要以一个文件夹的形式来返回到前端。
解压缩zip
在nodejs文档中发现原生api貌似只支持gzip的解压缩,故引入了第三方插件unzip来解决。
let inp = fs.createReadStream(path)
let extract = unzip.Extract({ path: t