image-optimizer-plugin v1.0.1
Image Processor - Node.js
Automate image optimization by converting image files to WebP format with ease. This module provides real-time directory watching, metadata logging, and customizable settings, all powered by Node.js. Perfect for developers looking to streamline image processing for web projects.
Features
- Convert to WebP: Automatically optimize images with customizable quality settings (default: 80).
- Real-Time Monitoring: Watch directories for new images and process them instantly.
- Metadata Display: Log image details like format, dimensions, and file size.
- Comprehensive Logging: Track actions and errors in both the console and a log file.
- Environment Variables: Fully customizable settings using a
.env
file.
Installation
Install via NPM
Run the following command:npm install image-processor
Set Up Environment Variables
Create a.env
file in your project’s root directory to customize settings, such as image quality.
Example.env
file:IMAGE_QUALITY=90
Usage
1. Manual Execution
Run the image processor directly from the terminal:
node imageProcessor.js
This will:
- Convert existing images in the
public/images
directory to WebP format. - Monitor the
public/images
directory for new images and process them automatically.
2. Importing as a Module
You can also import and use it in your own Node.js application:
const imageProcessor = require('image-processor');
// Start the processing and monitoring
imageProcessor.start();
Functions
start()
- Converts existing images in the directory.
- Starts monitoring the directory for new image files.
convertAndReplace(filePath)
- Converts a single image to WebP format and replaces the original file.
processExistingFiles()
- Processes all existing files in the directory.
startWatcher()
- Watches the directory for new image files and processes them automatically.
Directory Structure
The default directory structure is:
/
├── public/
│ └── images/ # Directory containing the images to process
├── imageProcessor.js # Main script
├── imageProcessor.log # Log file
├── .env # Environment variables file
└── package.json # Node.js project file
Logging
The module uses Winston for logging:
- Logs are displayed in the console.
- Logs are saved to a file named
imageProcessor.log
.
Troubleshooting
- Ensure the
public/images
directory exists and contains images. - If you encounter permission issues, check the directory's file permissions.
- If images aren’t being processed, try deleting
node_modules
and reinstalling:rm -rf node_modules npm install
License
This project is licensed under the MIT License.
Contributions
Contributions are welcome! Feel free to open issues or submit pull requests to improve the module.
Contact
For questions or suggestions, contact the development team at developers@cybersolin.com.