https://github.com/sudongyuer/easy-tinypng-cli
🐼 A cli can automatically compress images with tinypng.com
https://github.com/sudongyuer/easy-tinypng-cli
compress compress-images images tiny tinypng-api tinypng-cli
Last synced: 17 days ago
JSON representation
🐼 A cli can automatically compress images with tinypng.com
- Host: GitHub
- URL: https://github.com/sudongyuer/easy-tinypng-cli
- Owner: sudongyuer
- License: mit
- Created: 2022-07-29T03:36:37.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-11-25T04:59:48.000Z (almost 3 years ago)
- Last Synced: 2025-09-06T03:51:51.151Z (about 2 months ago)
- Topics: compress, compress-images, images, tiny, tinypng-api, tinypng-cli
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/easy-tinypng-cli
- Size: 6.88 MB
- Stars: 69
- Watchers: 1
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# easy-tinypng-cli
A cli can automatically compress images with [tinypng.com.](https://tinypng.com/)
[](https://www.npmjs.com/package/easy-tinypng-cli)
![]()
## Why
When delevoping a website, we often need to `compress` `images` to reduce the `network io` cast.In normal way, we may need four steps to compress images:
1. download images from the internet
2. upload the image to [tinypng.com](https://tinypng.com/)
3. download the compressed image from [tinypng.com](https://tinypng.com/)
4. copy the compressd images into our workspaceThe above steps are very time-consuming. So !!! this `cli` can automatically compress images in background process. It will watch the fileSystem changes to auto handle if there are any images that need to be compressed.
## 🚀 Features
- 💾 Support configuration file
- 🍁 Multiple directory watching
- ✨ Support HMR
- 🦋 Auto detection nested directory images and compress them
- 🌝 Background process will not block the main thread
- 🐻❄️ Compressed record logging to avoid repeated compression
![]()
## Usage
### Install
```ball
pnpm add -D easy-tinypng-cli
```### Config `tiny.config.ts`
- APIKey (required) : the API key of [tinypng.com](https://tinypng.com/), you can get it from [tinypng.com](https://tinypng.com/)
- targetDir (required) : the top directory that you want to compress images
```js
import { defineTinyConfig } from 'easy-tinypng-cli/utils'export default defineTinyConfig({
configs: [
{
targetDir: './src/images',
},
],
APIKey: 'xxxxxxxxx',
})```
### Add Script in `package.json````js
{
"scripts": {
"optimizeImages": "tiny"
}
}
```
or
```js
{
"scripts": {
"optimizeImages": "tiny --once" //only compress once no watching files change
}
}
```## Author
sudongyuer email:976499226@qq.com
## License
[MIT](./LICENSE) License © 2021 [SuDongYu](https://github.com/sudongyuer)