astro-min
v1.3.1
Published
Extremely β‘ fast and smart π HTML π‘ JS π΅ CSS π£ SVG minification for Astro π based on Rust π¦
Downloads
766
Maintainers
Readme
β³ AstroMin
Extremely fast and smartπΉ Minification of π HTML π‘ JS π΅ CSS π£ SVG
Meticulously optimized for Speed π₯ and Effectiveness π based on Rust π¦
Feature Highlights β¨
- β‘ Performant parallel processing (+1k files/s)
- πͺΆ Lighter build output (~25% smaller)
- π¦ small packaged size (~30KB)
Feature Roadmap π±
- [x] HTML, CSS, JS, SVG
- [x] Files and inline Code
- [x] 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
Getting started π―
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
Manual Installation π§βπ»
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()]
})
Options π§
//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 beforeastro-compressor
andastro-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()
]
})
Development π»
Learn more π
Versus π
- π uses terser based on javascript
- π€ lightningcss not yet implemented
- π uses terser based on javascript
Colophon π
Build with modern FOSS π and AI assistance π€
Next generation β¨ web development based on Rust π¦
Changelog π
1.2.0 - π Feat: Parallel processing
- β¨ Feat: Skip *.min.*
1.1.0 - π Fix: Auto install bug