A VirtualFileSystem wraps a VirtualProvider and exposes a
node:fs-like API. Each instance maintains its own file tree.
new VirtualFileSystem(provider?, options?): VirtualFileSystem
VirtualProvidernew MemoryProvider().The provider backing this VFS instance.
true when the underlying provider is read-only.
VirtualFileSystem implements the following methods, with the same
signatures as their node:fs counterparts:
existsSync(path)statSync(path[, options])lstatSync(path[, options])readFileSync(path[, options])writeFileSync(path, data[, options])appendFileSync(path, data[, options])readdirSync(path[, options])mkdirSync(path[, options])rmdirSync(path)unlinkSync(path)renameSync(oldPath, newPath)copyFileSync(src, dest[, mode])realpathSync(path[, options])readlinkSync(path[, options])symlinkSync(target, path[, type])accessSync(path[, mode])rmSync(path[, options])truncateSync(path[, len])ftruncateSync(fd[, len])linkSync(existingPath, newPath)chmodSync(path, mode)chownSync(path, uid, gid)lchownSync(path, uid, gid)utimesSync(path, atime, mtime)lutimesSync(path, atime, mtime)mkdtempSync(prefix)opendirSync(path[, options])openAsBlob(path[, options])- File-descriptor ops:
openSync,closeSync,readSync,writeSync,fstatSync - Streams:
createReadStream,createWriteStream - Watchers:
watch,watchFile,unwatchFile
readFile, writeFile, stat, lstat, readdir, realpath, readlink,
access, open, close, read, write, rm, fstat, truncate,
ftruncate, link, mkdtemp, opendir. Each takes a Node.js-style
callback (err, ...result) => {}.
vfs.promises exposes the promise-based variants:
const vfs = require('node:vfs'); async function example() { const myVfs = vfs.create(); await myVfs.promises.writeFile('/file.txt', 'hello'); const data = await myVfs.promises.readFile('/file.txt', 'utf8'); return data; } example();
The promise namespace mirrors fs.promises and includes readFile,
writeFile, appendFile, stat, lstat, readdir, mkdir, rmdir,
unlink, rename, copyFile, realpath, readlink, symlink,
access, rm, truncate, link, mkdtemp, chmod, chown, lchown,
utimes, lutimes, open, lchmod, and watch.