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.25日学习记录

node.js零基础详细教程(7.5):mongo可视化工具webstorm插件nodejs自动重启模块

记录 `node_modules` 修改文件并通过 `npm install` 自动下载

「Node学习笔记」Node.js的模块实现及编译

node js学习记录