mariusbuescher / node-composer
Installs composer nodejs or/and npm in vendor/
Installs: 561
Dependents: 2
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 3
Open Issues: 6
Type:composer-plugin
Requires
- php: >=5.5.9
- composer-plugin-api: ^1.1
- composer/composer: ^1.4
- symfony/process: ^2.7 || ^3.0
This package is not auto-updated.
Last update: 2024-12-15 14:34:28 UTC
README
node-composer
composer plugin for a better frontend setup
PHP projects mostly are Web-Applications. Many Web-Applications also need a frontend part which runs in the browser. In modern Web-Development there often a whole build-chain connected to the frontend, so you can compile e.g. your scss, build your JavaScript with webpack and optimize your images.
This plugin provides a way to automatically download and installthe right version of node.js, npm and yarn. The binaries are linked to the bin-directory specified in your composer.json.
After that your can use node, npm and yarn in your composer-scripts.
Setup
The setup is pretty easy. Simply install the plugin in specify the node-version in your composer.json extra configs.
Example composer.json
{ "name": "my/project", "type": "project", "license": "MIT", "authors": [ { "name": "Marius Büscher", "email": "marius.buescher@gmx.de" } ], "require": { "mariusbuescher/node-composer": "*" }, "extra": { "mariusbuescher": { "node-composer": { "node-version": "4.8.3", "yarn-version": "0.22.0" } } } }
Configuration
There are three parameters you can configure: The node version (node-version
), the yarn version (yarn-version
) and
the download url template for the node.js binary archives (node-download-url
).
In the node download url the following parameters are replaced:
- version:
${version}
- type of your os:
${osType}
- system architecture:
${architecture}
- file format
${format}
Example composer.json:
{ // ... "extra": { "mariusbuescher": { "node-composer": { "node-version": "6.11.0", "yarn-version": "0.24.5", "node-download-url": "https://nodejs.org/dist/v${version}/node-v${version}-${osType}-${architecture}.${format}" } } } }