Drupal composer installer plugin
- Installs Drupal core into drupal-root.
- Installs Drupal modules into {drupal-root}/sites/all/modules/{dir}.
- Installs libraries into {drupal-root}/sites/all/libraries.
- Saves and restores custom code around drupal/drupal installation.
To use this installer in your project build, in your composer.json add
"repositories": [
{
"type": "git",
"url": "[email protected]:douggreen/drupal-composer-installer.git"
}
],
"require": {
"drupal/composer-installer": "~1.0"
}
You'll also want to add a packageist as follows (that is, until drupal.org implements it's own):
"repositories": [
{
"type": "composer",
"url": "http://drupal-packagist.webflo.io/"
}
],
Your somewhat complete composer.json might look like:
{
"name": "Example project",
"repositories": [
{
"type": "composer",
"url": "http://drupal-packagist.webflo.io/"
},
{
"type": "git",
"url": "[email protected]:douggreen/drupal-composer-installer.git"
}
],
"require": {
"composer/installers": "*",
"drupal/composer-installer": "~1.0",
"drupal/drupal": "~7.38"
},
"extra": {
"drupal-root": "docroot"
}
}
"extra": {
"drupal-root": "docroot"
},
The package is the key name. Any value specifies a directory name under sites/all/libraries.
"extra": {
"drupal-libraries": {
"harvesthq/chosen" : "",
"desandro/imagesloaded" : "jquery-imagesloaded",
},
},
The value ckeditor/ckeditor
is implied by default.
- drupal/* : contrib, by default all drupal modules are installed in {drupal-root}/sites/all/modules/contrib or {drupal-root}/sites/all/modules/project. Additional directories can be specified.
"extra": {
"drupal-modules": {
"vendor/*": "vendor",
"vendor/name": "sandbox"
},
},
The value "drupal/*": "contrib"
is implied by default but can be overridden.
This is array of custom code paths that should be saved before drupal/drupal is installed and restored after it is installed.
"extra": {
"drupal-custom": [
"core/sites/all/themes/mytheme"
],
},
The values sites/all/modules/custom
and sites/all/themes/custom
are implied by default and do not
need to be listed.
If set, any .git directory that is downloaded from "git" "repositories" is removed. Set this to avoid git subprojects.