All Projects β†’ fxpio β†’ Foxy

fxpio / Foxy

Licence: mit
A fast, reliable, and secure NPM/Yarn bridge for Composer

Projects that are alternatives of or similar to Foxy

Awesome Composer
😎 A curated awesome list for Composer, Packagist, Satis, Plugins, Scripts, Composer related resources, tutorials.
Stars: ✭ 738 (+438.69%)
Mutual labels:  composer, dependency-manager, composer-plugin
Lmify
Install NPM dependencies programmatically πŸ€™
Stars: ✭ 98 (-28.47%)
Mutual labels:  npm, yarn
Beetbox
Pre-provisioned L*MP stack
Stars: ✭ 94 (-31.39%)
Mutual labels:  composer, composer-plugin
Cheatsheets
A curated list of everything I look up more than twice
Stars: ✭ 109 (-20.44%)
Mutual labels:  npm, yarn
Node Developer Boilerplate
🍭 Boilerplate for ES6+ Node.js and npm Developer
Stars: ✭ 82 (-40.15%)
Mutual labels:  npm, yarn
Dependency spy
Find known vulnerabilities in your dependencies
Stars: ✭ 87 (-36.5%)
Mutual labels:  npm, composer
Yarn
The 1.x line is frozen - features and bugfixes now happen on https://github.com/yarnpkg/berry
Stars: ✭ 40,325 (+29334.31%)
Mutual labels:  npm, yarn
Pkgmirror
Packages Mirroring
Stars: ✭ 62 (-54.74%)
Mutual labels:  npm, composer
Composer Custom Directory Installer
A composer plugin, to install differenty types of composer packages in custom directories outside the default composer default installation path which is in the vendor folder.
Stars: ✭ 117 (-14.6%)
Mutual labels:  composer, composer-plugin
Kymsu
Keep Your macOs Stuff Updated (KYMSU)
Stars: ✭ 119 (-13.14%)
Mutual labels:  npm, yarn
Greenkeeper
πŸ€– 🌴 Real-time automated dependency updates for npm and GitHub
Stars: ✭ 1,564 (+1041.61%)
Mutual labels:  npm, dependency-manager
Emma Cli
πŸ“¦ Terminal assistant to find and install node packages.
Stars: ✭ 1,201 (+776.64%)
Mutual labels:  npm, yarn
Have It
The fastest NPM install does nothing because you already have it
Stars: ✭ 75 (-45.26%)
Mutual labels:  npm, yarn
Skrub
A package to remove junk from Composer installations and trim build sizes.
Stars: ✭ 91 (-33.58%)
Mutual labels:  composer, composer-plugin
Package.json
ζ–‡δ»Ά package.json ηš„θ―΄ζ˜Žζ–‡ζ‘£γ€‚
Stars: ✭ 67 (-51.09%)
Mutual labels:  npm, yarn
Democracy Client
DEMOCRACY App Client
Stars: ✭ 98 (-28.47%)
Mutual labels:  npm, yarn
Tiny Package Manager
Learn how npm or Yarn v1 works.
Stars: ✭ 125 (-8.76%)
Mutual labels:  npm, yarn
Floatsidebar.js
Lightweight (2kb gzipped), zero-dependency javascript library for making float sidebars based on the finite state machine
Stars: ✭ 56 (-59.12%)
Mutual labels:  npm, yarn
Yarn.msbuild
MSBuild integration for the Yarn package manager.
Stars: ✭ 57 (-58.39%)
Mutual labels:  npm, yarn
Composer Cleaner
Victor The Cleaner: removes unnecessary files from vendor directory
Stars: ✭ 114 (-16.79%)
Mutual labels:  composer, composer-plugin

Foxy

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

Foxy is a Composer plugin to automate the validation, installation, updating and removing of PHP libraries asset dependencies (javaScript, stylesheets, etc.) defined in the NPM package.json file of the project and PHP libraries during the execution of Composer. It handles restoring the project state in case NPM or Yarn terminates with an error. All features and tools are available: Npmrc, Yarnrc, Webpack, Gulp, Grunt, Babel, TypeScript, Scss/Sass, Less, etc.

It is certain that each language has its own dependency management system, and that it is highly recommended to use each package manager. NPM or Yarn works very well when the asset dependencies are managed only in the PHP project, but when you create PHP libraries that using assets, there is no way to automatically add asset dependencies, and most importantly, no validation of versions can be done automatically. You must tell the developers the list of asset dependencies that using by your PHP library, and you must ask him to add manually the asset dependencies to its asset manager of his project.

However, another solution exist - what many projects propose - you must add the assets in the folder of the PHP library (like /assets, /Resources/public). Of course, with this method, the code is duplicated, it pollutes the source code of the PHP library, no version management/validation is possible, and it is even less possible, to use all tools such as Babel, Scss, Less, etc ...

Foxy focuses solely on automation of the validation, addition, updating and deleting of the dependencies in the definition file of the asset package, while restoring the project state, as well as PHP dependencies if NPM or Yarn terminates with an error.

It is Fast

Foxy retrieves the list of all Composer dependencies to inject the asset dependencies in the file package.json, and leaves the execution of the analysis, validation and downloading of the libraries to NPM or Yarn. Therefore, no VCS Repository of Composer is used for analyzing the asset dependencies, and you keep the performance of native package manager used.

It is Reliable

Foxy creates mock packages of the PHP libraries containing only the asset dependencies definition file in a local directory, and associates these packages in the asset dependencies definition file of the project. Given that Foxy does not manipulate any asset dependencies, and let alone the version constraints, this allows NPM or Yarn to solve the asset dependencies without any intermediary. Moreover, the entire validation with the lock file and installation process is left to NPM or Yarn.

It is Secure

Foxy restores the Composer lock file with all its PHP dependencies, as well as the asset dependencies definition file, in the previous state if NPM or Yarn ends with an error.

Features

  • Compatible with Symfony Webpack Encore and Laravel Mix
  • Works with Node.js and NPM or Yarn
  • Works with the asset dependencies defined in the package.json file for projects and PHP libraries
  • Works with the installation in the dependencies of the project or libraries (not in global mode)
  • Works with public or private repositories
  • Works with all features of Composer, NPM and Yarn
  • Retains the native performance of Composer, NPM and Yarn
  • Restores previous versions of PHP dependencies and the lock file if NPM or Yarn terminates with an error
  • Validates the NPM or Yarn version with a version range
  • Configuration of the plugin per project, globally or with the environment variables:
    • Enable/disable the plugin
    • Choose the asset manager: NPM or Yarn (npm is used by default)
    • Lock the version of the asset manager with the Composer version range
    • Define the custom path of binary of the asset manager
    • Enable/disable the fallback for the asset package file of the project
    • Enable/disable the fallback for the Composer lock file and its dependencies
    • Enable/disable the running of asset manager to keep only the manipulation of the asset package file
    • Override the install command options for the asset manager
    • Override the update command options for the asset manager
    • Define the custom path of the mock package of PHP library
    • Enable/disable manually the asset packages for the PHP libraries
  • Works with the Composer commands:
    • install
    • update
    • require
    • remove

Documentation

Installation

Installation instructions are located in the guide.

License

Foxy is released under the MIT license. See the complete license in:

LICENSE

About

Foxy 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.

Acknowledgments

Thanks to Tobias Munk to have suggesting this name

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].