Wannabe-Pro/composer-release-plugin

Composer 包发布构建工具

0.2.1 2021-08-16 20:23 UTC

This package is auto-updated.

Last update: 2024-09-17 03:28:32 UTC


README

Composer 插件,允许生成和更新包的构建。

安装后,此插件将在 composer 配置的 "extra" 部分中查找 "build-plugin" ("build-plugin" 用于 "-dev" 模式) 键。此键的值是一组配置插件的选项。

配置值是构建目标名称的列表。对于每个指定的名称

  • "builder" - 构建类名称,它是构建配置的必需属性;
  • "composer" - 特定构建的 composer 包 json,这可以是一个包中的文件名或 infile-fragment;
  • "map" - 构建目标中文件映射的规则集。

插件会复制 composer 安装和更新操作,以在虚拟路径上使用特定的 composer 包构建的阴影副本。然后,插件在虚拟路径中映射文件,并通过名称提供给指定的构建器。

{
    "require": {
        "wanna-be-pro/composer-release": "*"
    },
    "extra": {
        "build-plugin": {
            "ProductionBuildTargetName": {
                "builder": "SpecificBuilderName",
                "composer": "SpecificComposerPackage",
                "mapper": "SpecificFilesMapRules"
            }
        },
        "build-plugin-dev": {
            "DevelopmentBuildTargetName": {
                "builder": "SpecificBuilderName",
                "composer": "SpecificComposerJson",
                "mapper": "SpecificFilesMapRules"
            }
        }
    }
}

映射规则检查源文件的相对路径,并为其应用模板名称。如果未设置或为 false,则从发布中排除文件。默认情况下,模板名称与源等效,并且所有文件都将被排除,除非另有说明。

{
    "/^README.md/": true,
    "/(.*)\\.php$/": "$1.inc",
    "/(^|\\/)\\./": false
}

此包预设了一个名为 copy 的构建器,用于简单复制文件。所有构建器都将扩展 WannaBePro\Composer\Plugin\Release\Builder,并在 composer-plugin 中通过 WannaBePro\Composer\Plugin\Release\Plugin::addBuilder($name, $builder) 注册。

映射允许外部规则文件操作目标。将映射键设置为数值,将映射值设置为源文件名。此规则文件接受 TargetIterator 作为 $iterator 变量。您可以将新目标的迭代器附加到构建器上,作为 $iterator->getInnerIterator()->append()。使用 FiltredFile 作为项目以禁用此文件的另一个过滤规则。

映射规则允许配置对象设置流选项。

{
    "/^.*\\.php$/": {
        "result": "/cp1251/$0",
        "config": {
            "context": {
                "proxy": "tcp://squid.example.com:8000"
            },
            "filters": ["convert.iconv.utf-8.cp1251"]
        }
    }
}

默认情况下,contextfilters 的配置应用于构建源流。