Skip to content

Latest commit

 

History

History
42 lines (29 loc) · 7.66 KB

fs-extra.md

File metadata and controls

42 lines (29 loc) · 7.66 KB

fs-extra

fs-extra adds some file system methods that previously were not included in the native fs module and added Promise support to the fs methods. Many of the fs-extra modules have since been implemented natively by Node.

fs-extra

Alternatives

node:fs

Node.js File System Module

To use the promise-based APIs:

import * as fs from 'node:fs/promises';

To use the callback and sync APIs:

import * as fs from 'node:fs';

Equivalent Methods

fs-extra node:fs Notes
copySync(src, dest[, options]) fs.copyFileSync(src, dest[, mode])
mkdirs(dir[,options][,callback]), mkdirp(dir[,options][,callback]), ensureDir(dir[,options][,callback]) fs.mkdir(dir, { recursive: true }, callback) ensureDir and mkdirp are aliases of mkdirs
mkdirpSync(dir[,options]), mkdirsSync(dir[,options]), ensureDirSync(dir[,options]) fs.mkdirSync(dir, { recursive: true }) ensureDirSync and mkdirpSync are aliases of mkdirsSync
remove(path[,callback]) fs.rm(path, { recursive: true, force: true }, callback)
removeSync(dir) fs.rmSync(dir, { recursive: true, force: true })
move(src, dest, { overwrite: true }, callback) fs.rename(source, destination)
moveSync(source, destination, { overwrite: true }) fs.renameSync(source, destination) These are not strictly equivalent. The move methods in fs-extra act like the mv command and they will work across devices also. The rename methods in fs work like the rename system call and will not work across devices. Having Node’s rename methods work across devices is currently marked as a "won't fix." Also, the overwrite: true behaviour is the default/only behaviour in the standard library.
copy(source, destination, callback) fs.cp(source, destination, callback)
pathExistsSync(file) fs.existsSync(path)

Methods that need migrating or more than one node:fs method

For all other methods, a combination of fs methods may be needed rather than there being a one-to-one replacement. See the docs here