3

composer を使用して Web アプリケーションをバンドルしています。私の構成セクションでは、フレームワーク (TYPO3 Flow) に必要なベンダー ディレクトリが定義されています。

"config": {
    "vendor-dir": "Packages/Libraries",
    "bin-dir": "bin"
},

これで、Packagist からではなく Github からのカスタム パッケージが 1 つあります。このパッケージは、Packages/Application/Vendor.PackageName にチェックアウトする必要があります。だから私はtarget-dirを使ってみました:

"repositories": [{
    "type": "package",
    "package": {
        "version": "dev-master",
        "name": "vendor/package",
        "source": {
            "url": "https://github.com/mycompany/mypackagerepo.git",
            "type": "git",
            "reference": "master"
        },
        "target-dir": "Packages/Application/Vendor.Package",
    }
}],
"require": {
    "typo3/flow": "2.0.*",
    "vendor/package": "dev-master"
}

Github からのクローン作成は正常に機能しますが、パッケージは現在 にチェックアウトされています。

Packages/Libraries/vendor/package/Packages/Application/Vendor.Package

これは、vendor-dir と target-dir が連結されたことを意味します。

単一のパッケージで vendor-dir を完全にオーバーライドするにはどうすればよいですか? 助けてくれてありがとう。

4

1 に答える 1

5

Composer インストーラーtarget-dirを使用してパッケージ タイプを に変更する代わりに、パッケージ定義を次のようにできます。typo3-flow-package

"repositories": [{
    "type": "package",
    "package": {
        "version": "dev-master",
        "name": "vendor/package",
        "type": "typo3-flow-package",  
        "source": {
            "url": "https://github.com/mycompany/mypackagerepo.git",
            "type": "git",
            "reference": "master"
        },
        "require": {
            "composer/installers": "~1.0"
        }
    }
]}

デフォルトでは、パッケージは の下にインストールされますがPackages/Application/package、パッケージ フォルダーにベンダー名のプレフィックスを付けて取得する場合は、以下Packages/Application/vendor.packageを追加します。

"extra": {
    "installer-paths": {
        "Packages/Application/{$vendor}.{$name}/": ["type:typo3-flow-package"]
    }
}
于 2013-10-25T05:32:57.733 に答える