写本地脚本时,有时要落一点中间产物,又不想自己拼一个 tmp-123 目录名。Node 标准库里的 fs.mkdtemp 会在给定前缀后面补随机字符,适合这种轻量场景。
环境:Node.js 18+。保存成 mkdtemp-demo.mjs:
import { mkdtemp, writeFile, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
const dir = await mkdtemp(join(tmpdir(), 'mesh-'))
const file = join(dir, 'note.txt')
await writeFile(file, 'hello temp\n', 'utf8')
console.log(dir)
console.log(file)
await rm(dir, { recursive: true, force: true })
console.log('cleaned')
跑一下:
node mkdtemp-demo.mjs
小坑是前缀最好放在系统临时目录下面,别只写 'mesh-',不然目录会建在当前工作目录附近。还有,mkdtemp 只负责创建,不会自动清理,脚本结束前记得自己删。