Skip to content

fs

fs 的一些操作

javascript
// 路径操作相关的
// 1. 读写文件,./ / 会报错的时候用用
// 2. 处理盘符  linux macOS /   win \\
import path from "path";
javascript
/*
  resolve
  拼接路径用的

  process.cwd
  获取当前命令行执行的前缀目录

  __dirname __filename
  只能在 cjs 中使用
*/
console.log(path.resolve("/a/b", "../"));
console.log(process.cwd());
console.log(path.resolve(process.cwd(), "./package.json"));

// console.log( __dirname, __filename )

文件操作相关

javascript
import fs from "fs";
fs.readFile(path.resolve(process.cwd(), "./package.json"), "utf8", (e, res) => {
  if (e) {
    return console.error(e);
  }

  console.log("package.json", res);
});

fs/promises

javascript
import fs from "fs/promises";

读取文件

javascript
/*
 * 读取文件
 * path 读取文件的全路径
 * encode  字符集
 */
fs.readFile(path.resolve(process.cwd(), "./package.json"), "utf8")
  .then((res) => {
    console.log("package.json", res);
  })
  .catch((err) => {
    console.log(err);
  });

写入文件

javascript
/*
 * path 写入文件的全路径
 * data 写入的内容,需要是字符串
 * encode  字符集
 */
fs.writeFile(
  path.resolve(process.cwd(), "./a.html"),
  "<html></html>",
  "utf8"
).catch((err) => {
  console.log(err);
});

复制粘贴

javascript
/*
 * 读取文件路径
 * 写入文件路径
 */
fs.copyFile(
  path.resolve(process.cwd(), "./package.json"),
  path.resolve(process.cwd(), "./package22.json")
).catch((err) => {
  console.log(err);
});

删除文件

javascript
fs.rm(path.resolve(process.cwd(), "./package22.json"), {
  force: true, //如果删除的文件不存在,是否忽略异常
  recursive: true, //如果是文件夹,是否应该递归的进行删除
});

修改文件内容

javascript
fs.readFile(path.resolve(process.cwd(), "./package.json"), "utf8").then(
  (res) => {
    let content = JSON.parse(res);
    content["scripts"].dev = "yarn install";
    setTimeout(() => {
      fs.writeFile(
        path.resolve(process.cwd(), "./package.json"),
        JSON.stringify(content),
        "utf8"
      ).catch((err) => {
        console.log(err);
      });
    }, 1000);
  }
);