this is a cli tool that prepares directories of static files for hosting by optimizing them using sharp, zopfli and ffmpeg.
it also generates alternative file formats for browser compatibility.
- image files automatically get duplicated as webp.
- non audio, non image and non video files get zopfli gzipped, if their size is more than 10% smaller or the savings are bigger than 512kb. in our tests on older phones, those levels where the sweetspot compromise between decompression and download time.
- convert flac to mp4, mp3 and ogg. add missing file formats if one of those (mp4, mp3, ogg) exists, but no other versions.
npm i --save-dev @grundstein/prepare-static-files
now, node_modules/.bin/prepare-static-files exists.
in package.json:
{
"scripts": {
"optimize": "prepare-static-files"
}
}
if installed globally (npm i -g):
prepare-static-files --help
if installed locally, in your repository:
node_modules/.bin/prepare-static-files --help
prepare-static-files also exposes a javascript api
import prepareStaticFiles from '@grundstein/prepare-static-files'
const buildFunction = async () => {
await prepareStaticFiles({ dirs: 'public' })
}
buildFunction()
first release
- fix license name in package.json
- update dependencies
update dependencies
- update dependencies
- etags.csv entries are alphabetically sorted
- update dependencies
- update dependencies
- update dependencies
- add ply optimization code
- FIX: ply handled the arguments wrongly
- update dependencies
- update @magic/mime-types to allow ply files to get compressed
update dependencies
- add --no-ply
- add --force to overwrite existing files
- update dependencies
...