Extremely fast and smartπΉ Minification of π HTML π‘ JS π΅ CSS π£ SVG
Meticulously optimized for Speed π₯ and Effectiveness π based on Rust π¦
- β‘ Performant parallel processing (+1k files/s)
- πͺΆ Lighter build output (~25% smaller)
- π¦ small packaged size (~30KB)
- HTML, CSS, JS, SVG
- Files and inline Code
- Static Site Minification
Note
astro-min
focuses on compressing statically generated content and pre-rendered routes
- Support SSR / Hybrid Rendering
- Remove Comments from external CSS/JS
Use your package manager of your choice
# NPM
npm run astro add astro-min
# Bun (known bug π)
#bun astro add astro-min
# PNPM
pnpm astro add astro-min
# Yarn
yarn astro add astro-min
-
Install package
astro-min
-
Import and add to integrations list
//astro.config.mjs
import { defineConfig } from 'astro/config'
import min from 'astro-min'
export default defineConfig({
integrations: [min()]
})
//astro.config.mjs
import { defineConfig } from 'astro/config'
import minify from 'astro-min'
export default defineConfig({
integrations: [
minify({
do_not_minify_doctype: false,
ensure_spec_compliant_unquoted_attribute_values: false,
keep_closing_tags: false,
keep_comments: false,
keep_html_and_head_opening_tags: false,
keep_input_type_text_attr: false,
keep_spaces_between_attributes: false,
keep_ssi_comments: false,
minify_css: false,
minify_js: false,
preserve_brace_template_syntax: false,
preserve_chevron_percent_template_syntax: false,
remove_bangs: false,
remove_processing_instructions: false,
})
]
})
Important
Use astro-min
last in your integration list for the best optimization
Optional: but before astro-compressor
and astro-compress
for images only
//astro.config.mjs
import { defineConfig } from 'astro/config'
import compressor from 'astro-compressor'
import minify from 'astro-min'
export default defineConfig({
integrations: [
minify({
// do_not_minify_doctype: false,
// ensure_spec_compliant_unquoted_attribute_values: false,
// keep_closing_tags: false,
// keep_comments: false,
// keep_html_and_head_opening_tags: false,
// keep_input_type_text_attr: false,
// keep_spaces_between_attributes: false,
// keep_ssi_comments: false,
// minify_css: false,
// minify_js: false,
// preserve_brace_template_syntax: false,
// preserve_chevron_percent_template_syntax: false,
// remove_bangs: false,
// remove_processing_instructions: false,
}),
compress({
CSS: false,
HTML: false,
Image: true,
JavaScript: false,
SVG: false
}),
compressor()
]
})
- https://warpspeed-world.github.io/css-minification-benchmark/
- https://github.com/neon-bindings/neon
-
- π uses terser based on javascript
- π€ lightningcss not yet implemented
-
- π uses terser based on javascript
Build with modern FOSS π and AI assistance π€
Next generation β¨ web development based on Rust π¦
1.2.0 - π Feat: Parallel processing
- β¨ Feat: Skip *.min.*
1.1.0 - π Fix: Auto install bug