发送给 packagist 时忽略测试文件夹
Ignore tests folder when send to packagist
我有一个结构如下的项目:
- src
----/ /* Relevant files */
- tests
----/ /* Irrelevant files */
- composer.json
- phpunit.xml
该项目已在每次提交时发送给 packagist。但是,它正在发送测试文件。
我想忽略 tests
文件夹,这样当有人调用 composer require my/package
时,作曲家就不会下载不需要的文件
这是我的 composer.json 的内容:
{
"name": "my/package",
"description": "...",
"type": "library",
"license": "MIT",
"require": {
"php": ">=7"
},
"require-dev": {
"phpunit/phpunit": ">=5.4"
},
"autoload": {
"psr-4": {
"MyProject\": "./src"
}
}
}
Ignore tests folder when send to packagist
让我们先理清一些困惑。
当您为您的存储库启用 Packagist 时,Packagist 将加载 composer.json
以获取有关您的项目的元数据并从 tags/branches 中获取版本信息。
但是您没有将 PHP 代码或任何测试发送给 Packagist。
I'd like to ignore tests folder, so composer wont download unecessary files when someone calls composer require my/package
这个问题经常出现。我引用的是我前一段时间写的详细答案,它解释了很多背景:
使用带有 export-ignore
指令的 .gitattributes
文件
- 从技术上讲,您可以将
.gitattributes
文件添加到您的存储库,该文件为测试文件夹声明了 export-ignore
规则。
- 这意味着任何
git export
将不再有测试文件夹,包括 Github zip 文件。
好的,排除完成..
但是,当某人 composer require
是您的项目时,它现在将依赖 --prefer-dist 设置从 dist (zip ). (您将通过 --prefer-source
获得测试)。
如果是小图书馆就不用担心了。开心点.. :)
如果它是一个更大的应用程序,那么更好的解决方案是正确打包您的应用程序,而不是依赖于 git exported
zip 分发。
大多数开发人员不再使用 build.xml
或任何构建脚本,但我认为这是正确的方法。
这意味着一旦您准备好标记新版本。
您触发构建脚本,该脚本获取所有依赖项,再次运行测试,当一切正常时,删除所有测试并将文件打包以进行部署。
小提示:不要忘记在 composer.json
.
中添加一个 autoload-dev
测试部分
我有一个结构如下的项目:
- src
----/ /* Relevant files */
- tests
----/ /* Irrelevant files */
- composer.json
- phpunit.xml
该项目已在每次提交时发送给 packagist。但是,它正在发送测试文件。
我想忽略 tests
文件夹,这样当有人调用 composer require my/package
这是我的 composer.json 的内容:
{
"name": "my/package",
"description": "...",
"type": "library",
"license": "MIT",
"require": {
"php": ">=7"
},
"require-dev": {
"phpunit/phpunit": ">=5.4"
},
"autoload": {
"psr-4": {
"MyProject\": "./src"
}
}
}
Ignore tests folder when send to packagist
让我们先理清一些困惑。
当您为您的存储库启用 Packagist 时,Packagist 将加载 composer.json
以获取有关您的项目的元数据并从 tags/branches 中获取版本信息。
但是您没有将 PHP 代码或任何测试发送给 Packagist。
I'd like to ignore tests folder, so composer wont download unecessary files when someone calls composer require my/package
这个问题经常出现。我引用的是我前一段时间写的详细答案,它解释了很多背景:
使用带有 export-ignore
指令的 .gitattributes
文件
- 从技术上讲,您可以将
.gitattributes
文件添加到您的存储库,该文件为测试文件夹声明了export-ignore
规则。 - 这意味着任何
git export
将不再有测试文件夹,包括 Github zip 文件。
好的,排除完成..
但是,当某人 composer require
是您的项目时,它现在将依赖 --prefer-dist 设置从 dist (zip ). (您将通过 --prefer-source
获得测试)。
如果是小图书馆就不用担心了。开心点.. :)
如果它是一个更大的应用程序,那么更好的解决方案是正确打包您的应用程序,而不是依赖于
git exported
zip 分发。 大多数开发人员不再使用build.xml
或任何构建脚本,但我认为这是正确的方法。这意味着一旦您准备好标记新版本。 您触发构建脚本,该脚本获取所有依赖项,再次运行测试,当一切正常时,删除所有测试并将文件打包以进行部署。
小提示:不要忘记在 composer.json
.
autoload-dev
测试部分