3m

Move & Minify Medias

Usage no npm install needed!

<script type="module">
  import m from 'https://cdn.skypack.dev/3m';
</script>

README

3m (Move & Minify Medias)

Minify images (jpg, png) and rename them following a pattern

Install

npm install -g 3m

Usage

3m [options] < file or glob ... >

Options

  • -v, --version

  • -o, --output-dir <destination directory>
    Default: ./dist

  • -p, --pattern <pattern>
    Set files names, availables patterns : [NAME],[EXT],[INDEX],[DIR_NAME],[INDEX_IN_DIR]
    Default: [NAME][EXT]

  • -e, --extensions <extensions>
    Set extensions
    Default: jpg,jpeg,png

  • -r, --recursive

  • --no-clear
    Don't clear destination directory

  • --no-minify
    Don't minify medias

  • -h, --help

Examples

Given the following structure :

.
├── canada
│   ├── [4.8M]  IMG_20180422_173241.jpg
│   ├── [3.4M]  IMG_20180423_135753.jpg
│   └── [ 37M]  VID_20180221_123547.mp4
├── france
│   ├── [4.3M]  IMG_20180423_143013.jpg
│   ├── [4.1M]  IMG_20180423_143133.jpg
│   └── [3.8M]  IMG_20180423_143339.jpg
└── japan
    ├── [4.0M]  IMG_20180423_141640.jpg
    ├── [4.4M]  IMG_20180423_141759.jpg
    └── [4.7M]  IMG_20180423_142342.jpg

Minify and move all files to a single directory

3m -r --extensions=jpg,mp4
.
├── canada
│   ├── [4.8M]  IMG_20180422_173241.jpg
│   ├── [3.4M]  IMG_20180423_135753.jpg
│   └── [ 37M]  VID_20180221_123547.mp4
├── dist
│   ├── [1.2M]  IMG_20180422_173241.jpg
│   ├── [726K]  IMG_20180423_135753.jpg
│   ├── [916K]  IMG_20180423_141640.jpg
│   ├── [1.0M]  IMG_20180423_141759.jpg
│   ├── [1.2M]  IMG_20180423_142342.jpg
│   ├── [1.0M]  IMG_20180423_143013.jpg
│   ├── [1.1M]  IMG_20180423_143133.jpg
│   ├── [975K]  IMG_20180423_143339.jpg
│   └── [ 37M]  VID_20180221_123547.mp4
├── france
│   ├── [4.3M]  IMG_20180423_143013.jpg
│   ├── [4.1M]  IMG_20180423_143133.jpg
│   └── [3.8M]  IMG_20180423_143339.jpg
└── japan
    ├── [4.0M]  IMG_20180423_141640.jpg
    ├── [4.4M]  IMG_20180423_141759.jpg
    └── [4.7M]  IMG_20180423_142342.jpg

Minify, move and rename all files

3m -r --extensions=jpg,mp4 --pattern [DIR_NAME]_[INDEX_IN_DIR][EXT]
.
├── canada
│   ├── [4.8M]  IMG_20180422_173241.jpg
│   ├── [3.4M]  IMG_20180423_135753.jpg
│   └── [ 37M]  VID_20180221_123547.mp4
├── dist
│   ├── [1.2M]  canada_1.jpg
│   ├── [726K]  canada_2.jpg
│   ├── [ 37M]  canada_3.mp4
│   ├── [1.0M]  france_1.jpg
│   ├── [1.1M]  france_2.jpg
│   ├── [975K]  france_3.jpg
│   ├── [916K]  japan_1.jpg
│   ├── [1.0M]  japan_2.jpg
│   └── [1.2M]  japan_3.jpg
├── france
│   ├── [4.3M]  IMG_20180423_143013.jpg
│   ├── [4.1M]  IMG_20180423_143133.jpg
│   └── [3.8M]  IMG_20180423_143339.jpg
└── japan
    ├── [4.0M]  IMG_20180423_141640.jpg
    ├── [4.4M]  IMG_20180423_141759.jpg
    └── [4.7M]  IMG_20180423_142342.jpg

Minify, move and rename some files/directory

3m -r --extensions=jpg,mp4 --pattern [DIR_NAME]_[INDEX_IN_DIR][EXT] canada japan/IMG_20180423_141640.jpg france/IMG_20180423_143339.jpg
.
├── canada
│   ├── [4.8M]  IMG_20180422_173241.jpg
│   ├── [3.4M]  IMG_20180423_135753.jpg
│   └── [ 37M]  VID_20180221_123547.mp4
├── dist
│   ├── [1.2M]  canada_1.jpg
│   ├── [726K]  canada_2.jpg
│   ├── [ 37M]  canada_3.mp4
│   ├── [975K]  france_1.jpg
│   └── [916K]  japan_1.jpg
├── france
│   ├── [4.3M]  IMG_20180423_143013.jpg
│   ├── [4.1M]  IMG_20180423_143133.jpg
│   └── [3.8M]  IMG_20180423_143339.jpg
└── japan
    ├── [4.0M]  IMG_20180423_141640.jpg
    ├── [4.4M]  IMG_20180423_141759.jpg
    └── [4.7M]  IMG_20180423_142342.jpg

Minify, move and keep the same structure

3m -r --pattern [PATH]/[NAME][EXT] --extensions=jpg,mp4
.
├── canada
│   ├── IMG_20180422_173241.jpg
│   ├── IMG_20180423_135753.jpg
│   └── VID_20180424_144512.mp4
├── dist
│   ├── canada
│   │   ├── IMG_20180422_173241.jpg
│   │   ├── IMG_20180423_135753.jpg
│   │   └── VID_20180424_144512.mp4
│   ├── france
│   │   ├── IMG_20180423_143133.jpg
│   │   ├── IMG_20180423_143339.jpg
│   │   └── IMG_20180423_144710.jpg
│   └── japan
│       ├── IMG_20180422_173241.jpg
│       ├── IMG_20180423_135753.jpg
│       └── IMG_20180423_141640.jpg
├── france
│   ├── IMG_20180423_143133.jpg
│   ├── IMG_20180423_143339.jpg
│   └── IMG_20180423_144710.jpg
└── japan
    ├── IMG_20180422_173241.jpg
    ├── IMG_20180423_135753.jpg
    └── IMG_20180423_141640.jpg