JSPM

  • Created
  • Published
  • Downloads 136
  • Score
    100M100P100Q73510F
  • License ISC

Extremely ⚠️ Fast ⚑ Smart 😊 HTML 🟠 JS 🟑 CSS πŸ”΅ Minification πŸ’ 

Package Exports

  • astro-min
  • astro-min/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (astro-min) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

✳ AstroMin

Extremely fast and smartπŸ”Ή Minification of 🟠 HTML 🟑 JS πŸ”΅ CSS 🟣 SVG
Meticulously optimized for Speed πŸ₯‡ and Effectiveness πŸ… based on Rust πŸ¦€

Built with Astro GitHub Repo Stars NPM Package Version License: MIT Types Socket Badge

Feature Highlights ✨

  • ⚑ Performant parallel processing (+1k files/s)
  • πŸͺΆ Lighter build output (~25% smaller)
  • πŸ“¦ small packaged size (~30KB)

Feature Roadmap 🌱

  • 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

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 πŸ§‘β€πŸ’»

  1. Install package astro-min

  2. 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 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()
  ]
})

Development πŸ’»

Open in StackBlitz Open with CodeSandbox Open in GitHub Codespaces Open in Gitpod

Learn more πŸ”–

Versus πŸ…

  • astro-compress

    • 🐌 uses terser based on javascript
    • πŸ’€ lightningcss not yet implemented
  • astro-html-minify

    • 🐌 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

Advanced Astro