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
