Introduction to fs-extra
fs-extra is a node.js package that extends the capabilities of the built-in fs module, providing additional methods for common file system operations. It aims to make working with the file system in Node.js easier and more efficient.
Basic Operations
Copying Files
const fs = require('fs-extra'); async function copyFile() { try { await fs.copy('/path/to/source/file.txt', '/path/to/destination/file.txt'); console.log('File copied successfully!'); } catch (error) { console.error('Error copying file:', error); } } copyFile();
Copying Directories
async function copyDirectory() { try { await fs.copy('/path/to/source/dir', '/path/to/destination/dir'); console.log('Directory copied successfully!'); } catch (error) { console.error('Error copying directory:', error); } } copyDirectory();
Removing Files
async function removeFile() { try { await fs.remove('/path/to/file.txt'); console.log('File removed successfully!'); } catch (error) { console.error('Error removing file:', error); } } removeFile();
Ensuring Directory Exists
async function ensureDirectory() { try { await fs.ensureDir('/path/to/dir'); console.log('Directory ensured!'); } catch (error) { console.error('Error ensuring directory:', error); } } ensureDirectory();
Reading JSON Files
async function readJsonFile() { try { const data = await fs.readJson('/path/to/file.json'); console.log('JSON data:', data); } catch (error) { console.error('Error reading JSON file:', error); } } readJsonFile();
Writing JSON Files
async function writeJsonFile() { try { const jsonObj = {name: "fs-extra", version: "10.0.0"}; await fs.writeJson('/path/to/output.json', jsonObj); console.log('JSON file written successfully!'); } catch (error) { console.error('Error writing JSON file:', error); } } writeJsonFile();
Moving Files
async function moveFile() { try { await fs.move('/path/to/source/file.txt', '/path/to/destination/file.txt'); console.log('File moved successfully!'); } catch (error) { console.error('Error moving file:', error); } } moveFile();
Application Example
Here’s an example of an application that leverages several of the fs-extra methods demonstrated above.
const fs = require('fs-extra'); async function manageFiles() { try { await fs.ensureDir('/projects/my-app'); console.log('Project directory created!'); await fs.copy('/templates/app-template', '/projects/my-app'); console.log('Template copied!'); await fs.writeJson('/projects/my-app/package.json', {name: 'my-app', version: '1.0.0'}); console.log('Package.json written!'); await fs.move('/projects/my-app/tempFile.txt', '/projects/my-app/src/newFile.txt'); console.log('File moved!'); await fs.remove('/projects/my-app/unnecessaryFile.txt'); console.log('Unnecessary file removed!'); } catch (error) { console.error('Error managing files:', error); } } manageFiles();
With fs-extra, handling file system operations becomes significantly easier, allowing you to focus more on developing your application logic.
Hash: baa7356b4f0c2575dee44bd5f6d501229f80ea3a4d3bcaa5e3d2a118df6bd4ee