简介
监听目录结构改变,读取目录中所有文件内容到指定文件中, 当前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