civicrm/composer-compile-plugin

为依赖图中的所有包定义一个 '编译' 事件

安装次数: 306 150

依赖项: 13

建议者: 0

安全性: 0

星标: 12

关注者: 21

分支: 8

开放问题: 1

类型:composer-plugin

v0.20 2023-03-01 06:55 UTC

This package is auto-updated.

Last update: 2024-08-29 10:31:18 UTC


README

"编译" 插件允许 PHP 库的开发者定义自定义的 "编译" 任务,例如

  • 将 SCSS 转换为 CSS
  • 基于 XML 架构生成 PHP 封装器

对于使用这些 PHP 库的网站构建者,编译任务将在常规下载(如 `composer install`)期间无缝运行。

对于发布 PHP 库的开发者,任务可以非常简单,例如

{
  "require": {"civicrm/composer-compile-plugin": "~0.14"},
  "extra": {
    "compile": [
      {"run": "@sh cd css; cat one.css two.css three.css > all.css"}
    ]
  }
}

任务可以通过多种方式定义,包括

  • Shell 命令(`@sh cat file-{1,2,3} > big-file`)
  • PHP 方法(`@php-method MyBuilder::build`)
  • PHP 评估(`@php-eval file_put_contents('big-file', make_big_file());`)
  • PHP 脚本文件(`@php-script my-script.php`)
  • Composer 子命令(`@composer dump-autoload`)

特性

  • 易于启用。不需要下游网站构建者进行手动配置。与框架无关。
  • 与其他 composer 工具配合良好,如 分支仓库composer-patchescomposer-locatorcomposer-downloads 和自动加载器。
  • 允许库仓库保持 "干净",无需提交构建工件。
  • 在本地 PHP 中运行。不需要外部/托管服务或额外的解释器。
  • 支持文件监控以实现自动重建(`composer compile:watch`)
  • 强制执行权限模型,以解决关于 composer 钩子和不可信库的历史问题。
  • 集成测试在 composer v1.10 和 v2.0 上均通过。

文档

  • site-build.md:管理根包(针对网站构建者)
  • tasks.md:处理任务(针对库开发者)
  • evaluation.md:评估并与其他选项进行比较
  • develop.md:如何与 composer-compile-plugin.git 一起工作(针对插件开发)

另请参阅

  • composer-compile-lib:用于特定编译任务的具有见解的助手/示例的小型库 -- meta-PHP、SCSS 等
  • composer#1193:关于依赖项后安装钩子的旧讨论线程