web-dev-qa-db-ja.com

JavaScriptまたはCSSライブラリをComposerプロジェクトに追加する方法は?

場合によっては、JavaScriptまたはCSSパッケージをプロジェクトに追加する必要があります。それらのケースの1つは DropzoneJSパッケージdrupal/entity_browser 。オンラインで読むことができるすべての推奨事項

  1. ダウンロード手動
  2. インストール手動

またはのように

Drushを使用する

これは、ユーザーの操作やセットアップスクリプトでの操作を回避する方法がないため、実際には満足のいくものではありません。

4
kaiser

extra : installer-paths を使用して、ライブラリをカスタムパスにインストールできます。例:

web/sites/libraries/{$name}

さらに、必要なtype of drupal-libraryを使用して、必要な パッケージリポジトリ を定義します。プロジェクトの例composer.json

{
    "name"              : "example-composer/example-project",
    "description"       : "Project template for Drupal 8 projects with composer",
    "type"              : "project",
    "minimum-stability" : "dev",
    "prefer-stable"     : true,
    "scripts"           : {
        "post-install-cmd" : "sh ./scripts/composer/post-install.sh"
    },
    "require"           : {
        "composer/installers"       : "^1.0.20",
        "drupal/entity_browser"     : "8.1.0-alpha1",
        "cweagans/composer-patches" : "~1.0",
        "drupal/core"               : "8.0.*",
        "drush/drush"               : "~8.0",
        "drupal/console"            : "~0.9",
        "drupal/devel"              : "dev-8.x-1.x",
        "drupal/entity_browser"     : "8.1.0-alpha1",
        "drupal/inline_entity_form" : "8.1.0-alpha2",
        "drupal/dropzonejs"         : "8.1.*@dev",
        "enyo/dropzone"             : "dev-master"
    },
    "repositories"      : [
        {
            "type" : "composer",
            "url"  : "https://packagist.drupal-composer.org"
        },
        {
            "type"    : "package",
            "package" : {
                "name"    : "enyo/dropzone",
                "version" : "dev-master",
                "type"    : "drupal-library",
                "dist"    : {
                    "url"  : "https://github.com/enyo/dropzone.git",
                    "type" : "drupal-library"
                },
                "source"  : {
                    "url"       : "https://github.com/enyo/dropzone.git",
                    "type"      : "git",
                    "reference" : "Origin/master"
                }
            }
        }
    ],
    "extra"             : {
        "installer-paths" : {
            "web/core"                    : [
                "type:drupal-core"
            ],
            ...
            "web/sites/libraries/{$name}" : [
                "type:drupal-library"
            ]
        }
    }
}

distの部分は省略でき、--prefer-distを介してインストールする場合にphp composer.phar update --prefer-distの場合にのみ必要です(反対:--prefer-source)。 versionをインストールし、masterブランチの最新バージョンをインストールしない場合は、パッケージでバージョンを直接設定して、そこ。例:

"require" : {
    "enyo/dropzone" : "v4.2.*@dev"
},
"repositories" : [
    {
        "type"    : "package",
        "package" : {
            "name"    : "enyo/dropzone",
            "version" : "v4.2.0",
            "type"    : "drupal-library",
            "source"  : {
                "url"       : "https://github.com/enyo/dropzone.git",
                "type"      : "git",
                "reference" : "Origin/master"
            }
        }
    }
]
14
kaiser