NPM/Bower Dependency Manager for Composer
, (*1)
The Composer Asset Plugin allows you to manage project assets (css, js, etc.) in your composer.json
without installing NPM or Bower., (*2)
This plugin works by transposing package information from NPM or Bower to a compatible version for Composer.
This allows you to manage asset dependencies in a PHP based project very easily., (*3)
Features include:
- Works with native management system versions of VCS repository of composer
- Works with public and private VCS repositories
- Lazy loader of asset package definitions to improve performance
- Import filter with the dependencies of the root package and the installed packages, for increased dramatically the performance for the update
- Automatically get and create an Asset VCS repository defined in:
- Automatically get and create the Asset VCS repositories of dependencies defined
in each asset package (dev dependencies included)
- Mapping conversion of asset package to composer package for:
- Conversion of Semver version to the composer version
- Conversion of Semver range version to the composer range version
- Conversion of dependencies with URL to the composer dependencies with the creation of VCS repositories
- Conversion of multiple versions of the same dependency to different dependencies of composer
- Add manually the multiple versions of a same dependency in the project
- Add a custom config of VCS Repository
- Override the config of VCS Repository defined by the asset registry directly in extra section of root composer
- VCS drivers for:
- Local cache system for:
- package versions
- package contents
- repository redirects
- Custom asset installers configurable in the root file
composer.json
- For Bower, all files defined in the section
ignore
will not be installed
- Disable or replace the deleting of the ignore files for Bower
- Enable manually the deleting of the ignore files for NPM
- Use the Ignore Files Manager in the Composer scripts
- Compatible with all commands, including:
depends
diagnose
licenses
remove
require
-
search
(bower only)
show
status
Why this plugin?
There already are several possibilities for managing assets in a PHP project:, (*4)
- Install Node.js and use NPM or Bower command line in addition to Composer command line
- Do #1, but add Composer scripts to automate the process
- Include assets directly in the project (not recommended)
- Create a repository with all assets and include the
composer.json
file (and use Packagist or an VCS Repository)
- Add a package repository in
composer.json
with a direct download link
- Create a Satis or Packagist server
- Other?
It goes without saying that each javascript, CSS, etc. library should be developed with the usual tools for that
language, which front-end developers know well. However, in the case of a complete project in PHP, it shouldn't
be necessary to use several tools (PHP, Nodejs, Composer, NPM, Bower, Grunt, etc.) to simply install
these assets in your project., (*5)
This plugin has been created to address these issues. Additionally, most developers will not add a composer.json
file to their projects just to support php based projects, especially when npm and/or bower already exist and are
widely used., (*6)
Documentation
The bulk of the documentation is located in Resources/doc/index.md
:, (*7)
Read the Documentation, (*8)
Read the FAQs, (*9)
Read the Release Notes, (*10)
Installation
The original fxp/composer-asset-plugin
package will be replaced with bisubus/composer-asset-plugin
(version constraint should be set to latest, e.g. dev-master
). You can still have fxp/composer-asset-plugin
installed globally, but substitute it with this package in your project., (*11)
See the Release Notes
to know the Composer version required., (*12)
Global scope (per user) installation
$ composer global require "bisubus/composer-asset-plugin:dev-master"
Project scope installation
$ composer require "bisubus/composer-asset-plugin:dev-master"
Usage
Kill switch is triggered with --ansi
or --no-ansi
Composer options (add to taste), since there is no way for Composer plugins at present to add custom CLI options., (*13)
It is disabled automatically when bower-asset
or npm-asset
packages are submitted explicitly to command line., (*14)
License
This composer plugin is under the MIT license. See the complete license in:, (*15)
Resources/meta/LICENSE, (*16)
About
Fxp Composer Asset Plugin is a François Pluchino initiative.
See also the list of contributors., (*17)
Reporting an issue or a feature request
Issues and feature requests are tracked in the Github issue tracker., (*18)