*** ## INSTALLING THIRD-PARTY LIBRARIES VIA COMPOSER Until Drupal has an official [core management of the 3rd-party front-end libraries](https://www.drupal.org/project/drupal/issues/2873160), there are various ways to install third party bower (deprecated)/ npm asset libraries. Check out any below suitable to your workflow: + [#3021902](https://www.drupal.org/project/blazy/issues/3021902) + [#2907371](https://www.drupal.org/project/slick/issues/2907371) + [#2907371](https://www.drupal.org/project/slick/issues/2907371#comment-12882235) + Via [asset-packagist.org](https://asset-packagist.org/), see below. It is up to you to decide which works best. Composer is not designed to manage JS, CSS or HTML framework assets. It is for PHP. Then come Composer plugins, and other workarounds to make Composer workflow easier. As many alternatives, it is not covered here. Please find more info on the above-mentioned issues. ### VIA ASSET-PACKAGIST.ORG If using [asset-packagist.org](https://asset-packagist.org/), regardless cons, be sure to set up your composer.json correctly, some distros use it, see [Slick](https://drupal.org/project/slick) project for the supporting distros to copy/ paste from their composer.json files. Be warned! Invalid json may break. Normally unwanted trailing commas. 1. Add/ merge these lines, add commas as required: ```` "repositories": [ { "type": "composer", "url": "https://asset-packagist.org" } ] ```` 2. Add/ merge these lines, add commas as required: ```` "extra": { "installer-types": [ "bower-asset", "npm-asset" ], "installer-paths": { "web/libraries/{$name}": [ "type:drupal-library", "type:bower-asset", "type:npm-asset" ], // .... } } ```` 3. Require [composer-installers-extender](https://github.com/oomphinc/composer-installers-extender): `composer require oomphinc/composer-installers-extender` 4. Then require any libraries as usual only prefixed with `npm-asset`, or `bower-asset` (deprecated). The versions must be re-checked, just samples: + Install [Blazy](https://www.drupal.org/project/blazy): `composer require npm-asset/blazy:^1.8.2` <= not required at Blazy 2.6. + If using [Slick](https://www.drupal.org/project/slick), the namespace is `slick-carousel`, not `slick`. The supported versions are `1.6.0 - 1.8.0`, not `1.8.1` up, use exact numbers: `composer require npm-asset/slick-carousel:1.8.0` + If using [Splide](https://www.drupal.org/project/splide): `composer require npm-asset/splidejs--splide:^3` + If using Colorbox, verify the latest supported version: `composer require npm-asset/jquery-colorbox:^1.6.4` + etc. 5. To update: `composer update --with-dependencies`