Giter VIP home page Giter VIP logo

composer-asset-plugin's Introduction

NPM/Bower Dependency Manager for Composer

Latest Version Build Status Coverage Status Scrutinizer Code Quality SensioLabsInsight Packagist Downloads

The Composer Asset Plugin allows you to manage project assets (css, js, etc.) in your composer.json without installing NPM or Bower.

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.

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 config 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
  • Configure the plugin per project, globally or with the environment variables
  • 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:

  1. Install Node.js and use NPM or Bower command line in addition to Composer command line
  2. Do #1, but add Composer scripts to automate the process
  3. Include assets directly in the project (not recommended)
  4. Create a repository with all assets and include the composer.json file (and use Packagist or an VCS Repository)
  5. Add a package repository in composer.json with a direct download link
  6. Create a Satis or Packagist server
  7. 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.

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.

Documentation

The bulk of the documentation is located in Resources/doc/index.md:

Read the Documentation

Read the FAQs

Read the Release Notes

Installation

All the installation instructions are located in documentation.

License

This composer plugin is under the MIT license. See the complete license in:

LICENSE

About

Fxp Composer Asset Plugin is a François Pluchino initiative. See also the list of contributors.

Reporting an issue or a feature request

Issues and feature requests are tracked in the Github issue tracker.

composer-asset-plugin's People

Contributors

alexandernst avatar anatolyrugalev avatar boekkooi avatar cebe avatar devthejo avatar dpobel avatar edgardmessias avatar francoispluchino avatar gabor-udvari avatar grasmash avatar hason avatar huebs avatar itstueben avatar jakoch avatar justdoitsascha avatar mmlado avatar moufmouf avatar mougrim avatar nadar avatar nsams avatar potherca avatar schmunk42 avatar silverfire avatar stefangr avatar steffendietz avatar wangchj avatar ywarnier avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.