node 插件 中间件 学习记录文件模块
Posted 健儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node 插件 中间件 学习记录文件模块相关的知识,希望对你有一定的参考价值。
1、用node语法实现一个插件,可以读文件夹里所有的文件,并修改文件。
分析:
“所有”肯定要递归
“读”和“写”肯定用node的fs模块
贴代码分析:
const fs = require("fs");
const path = require("path");
let readFile = (filePath = "./dist") => {
// 读取文件夹
fs.readdir(filePath, (err, files) => {
if (err) {
console.log("不存在目录");
}
console.log("files", files);
files.forEach((file) => {
let fileDir = path.join(filePath, file)
console.log(\'fileDir\', fileDir)
fs.stat(fileDir, (err, status) => {
if (err) {
console.warn(\'获取文件stats失败\');
return
}
// 判断是否是文件
let isFile = status.isFile();
// 判断是否是文件夹
let isDir = status.isDirectory();
if (isFile) {
// 读取文件
let content = fs.readFileSync(fileDir, \'utf-8\')
if (content.match(/<!-- built files will be auto injected -->/)) {
let str = \'<!-- built files will be auto injected -->\\n<script src="a.js"></script>\\n<script src="b.js"></script>\'
let data = content.replace(\'<!-- built files will be auto injected -->\', str)
console.log(\'data\', data)
// 写入文件
fs.writeFile(fileDir, data, \'utf-8\', (err) => {
// 第二个参数 是被插入的内容
if (err) {
throw err;
}
})
}
}
if (isDir) {
console.log(\'----文件---\')
// 如果文件里还是文件,则递归调用函数
readFile(fileDir)
}
})
});
});
};
readFile();
总结:
所用fs模块,api有
readdir、stat、readFileSync、writeFile
以上是关于node 插件 中间件 学习记录文件模块的主要内容,如果未能解决你的问题,请参考以下文章
node.js零基础详细教程(7.5):mongo可视化工具webstorm插件nodejs自动重启模块