Drupal の管理に Composer を利用します。

Drupal 公式ドキュメントの簡単な日本語意訳になります。
Using Composer

Composer は PHP の依存関係管理ツールです。プロジェクトが依存しているライブラリを宣言し、それらの管理(インストール、アップデート)をします。

Drupal で Composer を使う

ここでは Drupal サイト全体の依存管理を Composer を使います。

Drupal のインストールと 依存関係管理

Composer を使って Drupal コア、コントリビュートプロジェクトとそれぞれの依存のダウンロード方法

Composer のインストール

Getting Started on getcomposer.org を参照

Composer で Drupal コアのダウンロード

drupal-composer/drupal-project を利用することを推奨

デフォルトインストールは以下のコマンド
$ composer create-project drupal-composer/drupal-project:8.x-dev my_site_name_dir --no-interaction

Composer で モジュール、テーマ、それらのライブラリをダウンロード

$ composer require drupal/<modulename>
このコマンドは Drupal インストールルートディレクトリで実行する必要があります。コアディレクトリではありません。

Composer で サードパーティライブラリをダウンロード

$ composer require oomphinc/composer-installers-extender

プロジェクトルートの composer.json の "repositories" セクションに Asset Packagiost を追加

-----
"repositories": {
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
}
-----

プロジェクトルートの composer.json の "extra" セクションに Drupalのライブラリフォルダの "installer-paths" type:drupal-library、
NPM と Bower assets が "installer-types" に新たに登録されているか確認。

-----
"extra": {
    "installer-types": [
        "npm-asset",
        "bower-asset"
    ],
    "installer-paths": {
        "web/libraries/{$name}": [
            "type:drupal-library",
            "type:npm-asset",
            "type:bower-asset"
        ]
    }
}
-----

特定のライブラリのインストールパスは "installer-paths" 一般設定の上でコントロールできます。例えば chosen モジュールは /libraries/chosen ライブラリを想定していますが、composer require npm-asset/chosen-js は /ibraries/chosen-js にライブラリをインストールします。そこで以下のように設定を上書きできます。

-----
"extra": {
    "installer-paths": {
        "web/libraries/chosen": ["npm-asset/chosen-js"],
        "web/libraries/{$name}": [
            "type:drupal-library",
            "type:npm-asset",
            "type:bower-asset"
        ]
    }
}
-----

以下のコマンドで Composer 経由で NPM や Bower ライブラリをインストールできます。 

$ composer require bower-asset/leaflet:1.0.3
$ composer require npm-asset/chosen-js:^1.8

詳細は Requiring third-party libraries with Composer を参照

Comments