pantheon-se / node-composer
Installs Node.js, NPM, and Yarn into vendor/bin
Installs: 3 601
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 9
Forks: 0
Type:composer-plugin
Requires
- php: >=7.1
- composer-plugin-api: >=2.0
- ext-json: *
- ext-zip: *
- composer/composer: >=2.0
- symfony/process: >=3.3
README
Node Composer
Composer Plugin to implement asset compilation via Composer with Node.js.
Based on node-composer by mariusbuescher, this Composer plugin will install Node.js, NPM, and/or Yarn into your vendor/bin directory so that they are available to use during your Composer builds. This plugin helps automate the download of the binaries which are linked to the bin-directory specified in your composer.json.
Once installed, you can then use Node, NPM, and Yarn commands in your composer-scripts.
Setup
Simply install the plugin, and the latest Node.js LTS with NPM will be installed - no other configurations are necessary. Optionally, you can specify the node-version
in your composer.json extra configs to declare a specific version of Node.js. For Yarn, yarn-version
can either be set to true
to install the latest, or can be set to a specific version.
Example composer.json with Yarn
{ "name": "my/project", "type": "project", "license": "MIT", "require": { "pantheon-se/node-composer": "*" }, "extra": { "pantheon-se": { "node-composer": { "yarn-version": true } } }, "config": { "allow-plugins": { "pantheon-se/node-composer": true } }, "scripts": { "post-install-cmd": ["@build"], "post-update-cmd": ["@build"], "build": "cd web/themes/my_theme && yarn build" } }
Configuration
There are three parameters you can configure:
- Node version (
node-version
) - Yarn version (
yarn-version
) - The download url template for the Node.js binary archives (
node-download-url
).
In the Node download url, replace the following placeholders with your specific needs:
- version:
${version}
- type of your os:
${osType}
- system architecture:
${architecture}
- file format
${format}
Example composer.json with specific versions of Node and Yarn
{ "extra": { "pantheon-se": { "node-composer": { "node-version": "16.14.0", "yarn-version": "1.22.18", "node-download-url": "https://nodejs.org/dist/v${version}/node-v${version}-${osType}-${architecture}.${format}" } } } }