如何通过作曲家下载排除的路径?

How to download excluded paths via composer?

我想用 testsdocs 文件夹安装 doctrine/dbal 存储库。但是使用 composer installcomposer update 我找不到方法怎么办?

它们被排除在 doctrine/dbal -> composer.json 文件中:

"archive":{
  "exclude": ["!vendor", "tests", "*phpunit.xml", ".travis.yml", "build.xml", "build.properties", "composer.phar"]
}

有什么方法可以强制安装吗? 我认为必须有一种下载它的方法,例如 运行 在我的本地机器上进行测试。

编辑:

我也尝试过使用 require-dev 但在 composer update 之后 doctrine/dbal 包中没有 tests 文件夹。

composer.json 文件中的选项 exclude 无论如何与您的问题无关。当您从 composer 包中创建存档时使用此选项。

为什么有些文件夹会被排除?

文件夹 /docs/tests 被排除在 .gitattributes 文件中:

/tests export-ignore
/docs export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.gitmodules export-ignore
.travis.yml export-ignore
build.properties export-ignore
build.xml export-ignore
phpunit.xml.dist export-ignore
run-all.sh export-ignore
composer.lock export-ignore

那么我怎样才能下载它们呢?

首先,当您 composer installcomposer update:

时,composer 可以从两个不同的来源获取数据

Dist: The dist is a packaged version of the package data. Usually a released version, usually a stable release.

Source: The source is used for development. This will usually originate from a source code repository, such as git. You can fetch this when you want to modify the downloaded package.

Packages can supply either of these, or even both. Depending on certain factors, such as user-supplied options and stability of the package, one will be preferred.

作曲家的默认值

当您的作曲家在默认配置下使用 stable 软件包并且首选安装是 dist

"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable"

然后 composer 从 github 下载一个 zip 文件,该文件是使用 .gitattributes 中定义的过滤器创建的。这使作曲家更快。

使 composer 从源代码下载

如果你想拥有资源,你有两个选择。

  1. 制作"preferred-install": "source"
  2. composer update
  3. 上使用 --prefer-source 选项

它们都使 composer 对 all 包使用 source。 如果您只想拥有 doctrine/dbal 的来源而不是所有包的来源,那么请使用:

composer update doctrine/dbal --prefer-source

备注

您必须删除 /vendor 文件夹中的 doctrine/dbal 文件夹(或任何您想从源更新的文件夹)才能重新安装它。