Node.js module to list all files in a directory or any subdirectories.
This package is ESM only: Node 12+ is needed to use it and it must be import
instead of require
.
npm install recursive-readdir-files
If you still want to use in CommonJS, you can use dynamic import()
to load.
const recursiveReaddirFiles = await import('recursive-readdir-files');
// Fix compiling in typescript.
// https://github.com/microsoft/TypeScript/issues/43329#issuecomment-922544562
const { getExt, recursiveReaddirFiles } = await (Function('return import("recursive-readdir-files")')()) as Promise<typeof import("recursive-readdir-files")>;
import recursiveReaddirFiles from 'recursive-readdir-files';
recursiveReaddirFiles(process.cwd(), {
ignored: /\/(node_modules|\.git)/
})
.then((files) => {
// `files` is an array
console.log(files);
})
.catch((error) => {
console.error("something exploded", error);
});
export interface RecursiveReaddirFilesOptions {
/**
* Ignore files
* @example `/\/(node_modules|\.git)/`
*/
ignored?: RegExp;
/**
* Specifies a list of `glob` patterns that match files to be included in compilation.
* @example `/(\.json)$/`
*/
include?: RegExp;
/**
* Specifies a list of files to be excluded from compilation.
* @example `/(package\.json)$/`
*/
exclude?: RegExp;
/** Provide filtering methods to filter data. */
filter?: (item: IFileDirStat) => boolean;
}
export interface IFileDirStat {
/**
* @example `/a/sum.jpg` => `sum.jpg`
*/
name: string;
/**
* @example `/basic/src/utils/sum.ts`
*/
path: string;
/**
* @example `/a/b.jpg` => `jpg`
*/
ext?: string;
size?: number;
}
export default function recursiveReaddirFiles(rootPath: string, options?: RecursiveReaddirFilesOptions): Promise<IFileDirStat[]>;
export { recursiveReaddirFiles };
/**
* Get ext
* @param {String} filePath `/a/b.jpg` => `jpg`
*/
export declare const getExt: (filePath: string) => string;
As always, thanks to our amazing contributors!
Made with action-contributors.
Licensed under the MIT License.