web-dev-qa-db-ja.com

Composerを使用してサードパーティのライブラリをインストールする方法

私が考えたすべてComposerはcontribモジュールが自動的に必要とするすべての外部ライブラリを処理します。1つをインストールしようとしましたComposerはすべての依存モジュールを処理しましたが、外部ライブラリを使ってたくさん。

Composerを使用して、モジュールが依存する外部ライブラリをインストールするにはどうすればよいですか?

2
joejam

composer.jsonを使用してJavaScriptライブラリをインストールすることはお勧めしませんが、可能です。

注:このリポジトリタイプにはいくつかの制限があり、可能な限り回避する必要があります。

Composerは、versionfieldを変更しない限り、パッケージを更新しません。Composerはコミット参照を更新しないため、参照としてマスターを使用する場合は、パッケージを削除して強制的に更新する必要があり、不安定なロックファイルを処理する必要があります。

Composer docs

パッケージが外部ソースからダウンロードできる場合。アーカイブとして、タイプdrupal-libraryのカスタムパッケージとしてDrupalプロジェクトのcomposer.jsonrepositoriesセクションに追加し、これを必要とすることができます。それに応じてパッケージ:

"repositories": {
  "drupal": {
    "type": "composer",
    "url": "https://packages.drupal.org/8"
  },
  "mypackage": {
    "type": "package",
    "package": {
      "name": "myvendor/mypackage",
      "version": "1.0.0",
      "type": "drupal-library",
      "dist": {
        "url": "https://example.com/mypackage.Zip",
        "type": "Zip"
      }
    }
  }
},
"require": {
  ...
  "composer/installers": "^1.2",
  "myvendor/mypackage": "1.0.0"
},
"extra": {
  "installer-paths": {
    "public/core": ["type:drupal-core"],
    "public/libraries/{$name}": ["type:drupal-library"],
    "public/modules/contrib/{$name}": ["type:drupal-module"],
    "public/profiles/contrib/{$name}": ["type:drupal-profile"],
    "public/themes/contrib/{$name}": ["type:drupal-theme"],
    "drush/contrib/{$name}": ["type:drupal-drush"]
  },
  ...
}

リポジトリのドキュメント でComposerの詳細やその他のソースタイプを確認します。

3
Mario Steinitz

間違いなく https://asset-packagist.org/

マイナーな煩わしさは一貫性のない命名であり、モジュールによっては、どちらかを使用する必要がありますcomposer require npm-asset/js-libまたはcomposer require bower-asset/js-lib

アセットパッケージャーに記載されているように設定をcomposer.jsonに追加し( カスタムパスへのインストール を参照)、drupal固有のインストーラーパスを設定します。何かのようなもの

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