composer-asset-compiler icon indicating copy to clipboard operation
composer-asset-compiler copied to clipboard

Composer plugin that installs dependencies and compiles assets based on configuration.

trafficstars

Composer Asset Compiler

PHP Static Analysis PHP Unit Tests


What is this

A Composer plugin that automatically "compiles" frontend assets (js, css, etc.) for packages installed via Composer.

A quick example

Let's assume we have a website project having a composer.json that looks like this:

{
    "name": "acme/my-project",
    "require": {
        "acme/foo": "^1",
        "acme/bar": "^2",
        "inpsyde/composer-assets-compiler": "^3"
    },
    "extra": {
        "composer-asset-compiler": { "auto-run": true }
    }
}

And then suppose that acme/foo's composer.json looks like this:

{
    "name": "acme/foo",
    "extra": {
        "composer-asset-compiler": "gulp"
    }
}

and acme/bar's composer.json looks like this:

{
    "name": "acme/bar",
    "extra": {
        "composer-asset-compiler": "build"
    }
}

When we'll install the project with Composer, the following happens:

  1. Composer installs the three required packages
  2. Immediately after that, the plugin executes and:
    1. the plugin looks for all installed packages (including transitive dependencies) that have a composer-asset-compiler configuration, finding "acme/foo"and "acme/bar"
    2. moves to "acme/foo" installation folder, and executes npm install && npm run gulp
    3. moves to "acme/bar" installation folder, and executes npm install && npm run build

At the end of the process, we have a project with the dependencies installed, and their assets processed.

The example above is the simplest use case, but the plugin has many possible configurations and advanced use cases.

Documentation

  • Introduction
  • Compiling Assets
  • Script
  • Dependencies
  • Package Manager
  • Pre-compilation
  • Hash and Lock
  • Execution Mode
  • Configuration File
  • Packages Configuration in Root
  • Verbosity
  • Isolated Cache
  • Parallel Assets Processing
  • Configuration Cheat-Sheet
  • CLI Parameters
  • Environment Variables

License and Copyright

This repository is a free software, and is released under the terms of the MIT license. See LICENSE for complete license.