tienvx / composer-downloads-plugin
Composer插件,用于在任意composer包内下载额外文件。
Requires
- php: ^8.0
- composer-plugin-api: ^1.1 || ^2.0
- leongrdic/smplang: ^1.0.2
- symfony/filesystem: ^5.4 || ^6.0
- symfony/finder: ^4.4.23 || ^5.4 || ^6.0
Requires (Dev)
- composer/composer: ^1.10.26 || ^2.2
- php-vfs/php-vfs: ^1.4
- phpunit/phpunit: ^9.5.10
- symfony/process: ^4.4 || ^5.4 || ^6.0
This package is auto-updated.
Last update: 2024-04-15 14:04:27 UTC
README
此插件允许您下载额外的文件并在包内提取它们。
这是civicrm/composer-downloads-plugin的更新版本civicrm/composer-downloads-plugin。它增加了对更多存档文件的支持并允许自定义变量。
示例
假设您的PHP包 foo/bar
依赖于一个外部存档文件(Windows上的 examplelib-1.1.0-windows-amd64.zip
,Linux上的 examplelib-1.1.0-linux-x86_64.tar.gz
或 MacOS上的 examplelib-1.1.0-darwin-x86_64.tar.gz
)
{ "name": "foo/bar", "require": { "tienvx/composer-downloads-plugin": "^1.0" }, "extra": { "downloads": { "examplelib": { "url": "https://example.com/examplelib-{$version}-{$os}-{$architecture}.{$extension}", "path": "extern/{$id}", "version": "1.1.0", "variables": { "{$os}": "strtolower(PHP_OS_FAMILY)", "{$architecture}": "strtolower(php_uname('m'))", "{$extension}": "PHP_OS_FAMILY === 'Windows' ? 'zip' : 'tar.gz'", }, "ignore": ["tests", "doc", "*.md"] } } } }
当foo/bar
的下游用户运行composer require foo/bar
时,它将下载并解压缩存档文件到vendor/foo/bar/extern/examplelib
。
属性
-
url
: 额外文件的URL。 -
path
: 内容将被提取的相对路径。 -
type
: (可选) 决定如何处理下载。省略时,将使用url
中的扩展名来检测。- 存档类型(存档文件
url
将被下载并解压缩到path
)zip
: . 支持扩展*.zip
rar
: 支持扩展*.rar
xz
: 支持扩展*.tar.xz
tar
: 支持扩展*.tar.gz
、*.tar.bz2
、*.tar
、*.tgz
- 文件类型(文件
url
将被下载并放置到path
)file
phar
: 文件将被标记为可执行。gzip
:*.gz
文件将被解压缩到放置在path
的文件中。
- 存档类型(存档文件
-
ignore
: (可选) 一份应从提取文件夹中省略的文件列表。- 此功能仅支持存档类型。
- 仅对存档类型有用。
-
executable
: (可选) 指示应标记为可执行的文件列表。- 对于存档类型:值应为一个提取文件的列表
- 对于文件类型:值应为布尔值(true/false)
-
version
: (可选) 下载实体的版本号。- 这不会对实体的生命周期产生功能性影响。
- 它可以影响控制台输出。
- 它可以作为变量使用。
-
variables
: (可选) 自定义变量列表。
变量
支持的属性
只有以下属性支持变量
url
path
ignore
默认变量
{$id}
: 下载的标识符。(在示例中,将是examplelib
。){$version}
: 在version
属性中定义的文本,如果未定义,则值为空字符串(""
)。
自定义变量
- 格式将是
"{$variable-name}": "EXPRESSION-SYNTAX-EVALUATED-TO-STRING"
- 有关语法的更多信息,请参阅 Expression Syntax。
- 语法必须被评估为
string
。
方法
自定义变量支持以下方法
range
strtolower
php_uname
in_array
str_contains
str_starts_with
str_ends_with
matches
常量
自定义变量支持以下常量
PHP_OS
PHP_OS_FAMILY
PHP_SHLIB_SUFFIX
DIRECTORY_SEPARATOR
默认属性
您可以为所有下载设置默认属性。将它们放在*
下,如下所示
{ "extra": { "downloads": { "*": { "path": "bower_components/{$id}", "ignore": ["test", "tests", "doc", "docs"], "variables": { "{$extension}": "zip" } }, "jquery": { "url": "https://github.com/jquery/jquery-dist/archive/1.12.4.{$extension}" }, "jquery-ui": { "url": "https://github.com/components/jqueryui/archive/1.12.1.{$extension}" } } } }
文档
查看更多:文档
贡献
欢迎提交拉取请求,请发送拉取请求。
如果您发现任何错误,请报告问题。
作者
- Rob Bayliss - Composer Extra Files
- Tim Otten 和贡献者 - Composer 下载插件
- Tien Vo 和贡献者 - 本项目
许可证
此软件包可在MIT许可证下获得。