inpsyde/composer-assets-compiler

Composer plugin that installs and compile frontend dependencies for installed Composer packages based on configuration.

Installs: 124 487

Dependents: 2

Suggesters: 0

Security: 0

Stars: 24

Watchers: 10

Forks: 1

Open Issues: 3

Type:composer-plugin

3.0.1 2023-05-29 11:09 UTC

README

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

License and Copyright

Copyright (c) 2022 Inpsyde GmbH.

Composer Asset Compiler code is licensed under MIT license.

The team at Inpsyde is engineering the Web since 2006.