This is a set of configuration steps used to setup the requirements for a Drupal 8 website I’m working with using Drupal 8. PHP-Composer with Bower and NPM integration is used for updating and installing Drupal core, modules, and libraries. Included are procedures, configurations, and websites with information.
Prerequisites – May be necessary on the composer system used for installation and updates.
- Use npm to install bower for package management on system. In this case it is installed globally with by using the -g option. If npm is not installed you will need to install that first, so use your operating system specific procedures to install npm.
npm install -g bower
All command-line commands noted below should be run from the Drupal root folder where the site is downloaded to in the step #1.
- Downloaded initially prepared Drupal website with git. This site has been prepared by another IT office and uses a Git repository.
Under in the repositories section, add asset-packagist.org as an additional repository.
Look for “repositories” and add (commas as needed):
- Update site to current available Drupal version using composer. Use following commands:
composer update drupal/core --with-dependencies
– if Drush is working otherwise look at /update.php
– if Drush is working otherwise look in admin configuration > performance.
- Install Drupal modules needed for development and production work:
composer --update-with-dependencies require 'drupal/ctools'
# Activated: Chaos Tools
composer --update-with-dependencies require 'drupal/rabbit_hole’
# Activated: Rabbit Hole, Rabbit hole nodes, rabbit hole taxonomy
composer --update-with-dependencies require 'drupal/ds’
# Activated: Display Suite, Display Suite Extras, Display Suite switch views.
composer --update-with-dependencies require 'drupal/field_group'
# Activate: Field Groups module
composer --update-with-dependencies require 'drupal/token'
# Activate: token module
composer --update-with-dependencies require 'drupal/redirect'
# Activate: redirect module
composer --update-with-dependencies require 'drupal/entity_reference_revisions'
# Activate: Entity Reference Revisions module
composer --update-with-dependencies require 'drupal/autogrow'
# Activate: Autogrow module
composer --update-with-dependencies require 'drupal/metatag'
# Activate: Metatag module
composer --update-with-dependencies require 'drupal/imce'
# Activate: IMCE File Manager module
composer --update-with-dependencies require 'drupal/simplesamlphp_auth'
# Activate: SimpleSAMLphp Authentication module.
composer --update-with-dependencies require 'drupal/seckit'
# Activate: Security Kit module
composer --update-with-dependencies require 'drupal/securelogin'
# Activate: Secure Login module
composer --update-with-dependencies require 'drupal/antibot'
# Activate: Antibot module
composer --update-with-dependencies require 'drupal/honeypot'
# Activate: Honeypot module
composer --update-with-dependencies require 'drupal/webform'
# Activate Webform module
composer --update-with-dependencies require 'drupal/pathauto'
# Activate: Pathauto module
composer --update-with-dependencies require 'drupal/diff'
# Activate Diff module
composer --update-with-dependencies require 'drupal/slick’
# Activate: Slick and Slick UI modules. You must enable the Blazy, Media modules to install Slick.
- Installing external libraries with Composer as written about at:
– This should help eliminate the warnings: Webform: External libraries and lay foundation for external libraries into drupal-root: /libraries. External libraries are needed for the Webform and Slick Carousel modules.
- From drupal root directory in terminal use:
composer require wikimedia/composer-merge-plugin
– installs the composer merge plugin to install separate libraries.
– (untested!) May no longer be necessary after executing step #2.
If you install these plugins, you may need to add the following to the composer.json file:
Look for “config” and add:
"libraries", "bower-asset-library": "libraries"
- It may also be necessary to have the installer extender composer plugin installed:
composer global require oomphinc/composer-installers-extender
- Edit Drupal root composer.json file to support npm and bower assets:
Look for “extra”, add:
– Added options may need commas for syntax.
– Adds bower and npm support.
– informs composer to look in referenced composer.libraries.json file for installs.
Look for “installer-paths” and confirm these additions or changes.
– Add /library folder location. You may need to create this location drupal-root:/libraries
- From terminal in drupal root:
composer update –lock
– update lock, usually finishes install
Follow up install checks:
composer update --with-dependencies
– to perform full updates
Installing slick-carousel library is also a challenge – Notes
Helpful info: https://www.drupal.org/project/slick/issues/2855190
More notes: https://www.drupal.org/project/lightning/issues/3014759
Troubleshoot composer bower integration: https://www.drupal.org/project/lightning/issues/3014759
Composer & Bower integration, path configurations: https://www.drupal.org/project/slick/issues/2907371#comment-12882235
Slick Carousel requirements with bower integration notes – has set of command-line commands.: https://git.drupalcode.org/project/slick/blob/8.x-1.x/README.md
Installing External libraries requited by a Drupal module: https://www.drupal.org/docs/7/modules/libraries-api/installing-an-external-library-that-is-required-by-a-contributed-module
Helpful information about Composer and Bower integration including npm, bower, composer installations: https://gist.github.com/macagua/d85f8790dba9c0ad2745926937b2d240
Install slick libraries with bowser integration.
This is an example to install the slick-carousel library using composer with bower integration.
composer require bower-asset/slick-carousel
To install specific versions use:
composer require bower-asset/slick-carousel:dev-master
— It will be necessary to update the drupal-root:/composer.json file, and you should also check the required areas.
To check versions of installed packages with composer use:
Github – create token to download slick assets. From command-line output of above. Can also be regenerated at github.com.