Download the PHP package halimjr/asset-minifier-bundle without Composer

On this page you can find all versions of the php package halimjr/asset-minifier-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package asset-minifier-bundle

Asset Minifier Bundle

A companion bundle for Symfony Asset Mapper that automatically minifies your JavaScript and CSS using esbuild — with no Node.js, no npm, and no build pipeline to configure.

Asset Mapper already handles import maps, cache-busting hashes, and ES module loading. This bundle completes the picture by shrinking your JS and CSS before they ship.

Why this bundle?

Symfony Asset Mapper is deliberately free of Node.js tooling. But without a minification step, your JavaScript and CSS ship as readable source — comments, whitespace, and verbose names included. This bundle fills that gap by running each JS and CSS file through esbuild at compile time, using a self-contained binary that PHP downloads and manages for you.

No package.json. No node_modules. No extra tooling to maintain.

What it minifies

Requirements

Installation

Register the bundle in config/bundles.php:

That's the entire setup. On the next php bin/console asset-map:compile, the esbuild binary is downloaded automatically and all your JavaScript and CSS assets are minified.

Benchmarks

Measured on a real Symfony application with 45 Stimulus controllers:

File Original Minified Reduction
main_controller.js 66.8 KB 38.7 KB 42%
list_controller.js 27.1 KB 16.2 KB 40%
detail_controller.js 20.1 KB 11.8 KB 41%
sync_controller.js 16.2 KB 9.4 KB 42%
alert_controller.js 14.3 KB 8.5 KB 41%
Total (45 controllers) 419 KB 308 KB ~42%

Minification includes whitespace removal, comment stripping, and identifier mangling (local variable names shortened to single characters).

How it works

The bundle registers a compiler with Symfony Asset Mapper's pipeline via AssetCompilerInterface. During compilation, each JS and CSS file is piped through esbuild, which performs:

JavaScript (--minify --format=esm):

CSS (--minify --supported:hex-rgba=false):

The esbuild binary (~5 MB compressed) is downloaded once from the npm registry and cached in var/esbuild/. It is version-pinned by the bundle and re-downloaded automatically when you upgrade to a bundle version that ships a newer esbuild release.

Binary trust model. The download uses HTTPS with TLS peer verification (the same trust model as every npm install). Additionally, the bundle fetches the expected SHA-512 hash from the npm registry metadata API and verifies the tarball before extraction. If the hash does not match, the download is rejected and the binary is never written to disk.

Vendor assets are intentionally skipped. Pre-minified packages managed via importmap (e.g. @hotwired/stimulus, apexcharts) pass through untouched.

Stimulus controllers are safe. The bundle runs after Symfony's JavaScriptImportPathCompiler, so import paths are resolved and registered in the importmap before minification occurs. Method names used in data-action attributes are not mangled.

Tailwind CSS users. If you use symfonycasts/tailwind-bundle, it runs at a higher compiler priority than this bundle. Tailwind compiles your CSS first, and esbuild minifies the output. No configuration needed.

Configuration

No configuration is required for standard use. The following options are available if you need them:

Source maps

When source_maps: true, an inline source map is appended to each minified file. This lets you see original variable names and line numbers in browser DevTools, which is useful for debugging production issues without deploying unminified code.

Note that inline source maps increase file size. For most projects the trade-off is worth it in staging environments; in production, leave it disabled (the default).

binary_path is useful in environments where downloading from the npm registry is restricted, or when you manage the esbuild binary through your own provisioning (e.g. system packages, CI cache layers, Docker images).

Commands

Command Description
asset-minifier:download Downloads the esbuild binary for the current platform
asset-minifier:download --dry-run Previews what would be downloaded without downloading

Deployment

GitHub Actions

GitLab CI

Docker

If your container's application directory is read-only, var/esbuild/ cannot be written at runtime. Download the binary during the image build step instead:

Alternatively, place the binary at a writable or pre-provisioned path and tell the bundle where it is:

When binary_path is set, the bundle uses that binary directly and never attempts a download.

General deploy script

The download command is idempotent — it does nothing if the correct binary version is already present. You can safely run it on every deploy.

Add the binary directory to .gitignore:

Supported platforms

OS x86_64 arm64
Linux
macOS
Windows

Contributing

Bug reports and pull requests are welcome at github.com/halimjr/asset-minifier-bundle.

License

MIT — see LICENSE.


All versions of asset-minifier-bundle with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
ext-phar Version *
ext-zlib Version *
symfony/asset-mapper Version ^6.3|^7.0|^8.0
symfony/config Version ^6.3|^7.0|^8.0
symfony/console Version ^6.3|^7.0|^8.0
symfony/dependency-injection Version ^6.3|^7.0|^8.0
symfony/http-kernel Version ^6.3|^7.0|^8.0
symfony/process Version ^6.3|^7.0|^8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package halimjr/asset-minifier-bundle contains the following files

Loading the files please wait ...