【Deno】文件合并脚本

145 阅读1分钟

简介

监听目录结构改变,读取目录中所有文件内容到指定文件中, 当前deno版本1.34.0

代码

/**
 * 监听目录结构改变,读取目录中所有文件内容到指定文件中
 * 使用场景
 * 1、文件合并、压缩
 * 2、打包文件
 */
import { walk } from 'https://deno.land/std@0.189.0/fs/walk.ts';
// 目标文件路径
const sourcePath = './source'
// 目标文件路径
const targetPath = './source.js'
// 监听source文件改变
const watcher = Deno.watchFs(sourcePath);
for await (const _ of watcher) {
  // 遍历文件目录
  let sourceArr = []
  for await (const file of walk(sourcePath)) {
    // { path: "source/1.js", name: "1.js", isFile: true, isDirectory: false, isSymlink: false }
    if (file.isFile) { // 监听文件
      sourceArr.push(file.path)
    }
  }
  // 文件去重
  sourceArr = [...new Set(sourceArr)]
  // 1、对文件进行排序
  // 2、拼接文件内容输出到目标文件
  let content = ''
  sourceArr.sort().forEach(item => {
    const text = Deno.readTextFileSync(item)
    content += text + '\n'
  })
  // 写入文件
  Deno.writeTextFileSync(targetPath, content)
}

运行

deno run --allow-read --allow-write sourceWatch.ts

效果

image.png