jbouzekri/composer-deploy-plugin

使用 composer 在公共文档根文件夹中自动部署静态文件

v1.0.1 2015-07-04 12:39 UTC

This package is auto-updated.

Last update: 2024-09-12 19:46:17 UTC


README

此 composer 插件添加了额外的配置,用于从 vendor 复制文件夹到另一个位置。

这对于将资源发布到公共文档根目录非常有用。框架 symfony 使用类似的方法将用户扩展的资源发布到 apache 公共文档根目录。

安装

composer.json 中将 jbouzekri/composer-deploy-plugin 添加为依赖项。

"jbouzekri/composer-deploy-plugin": "~1.0"

然后运行 composer installcomposer update 命令。

配置

所有插件配置必须放在您项目 composer.json 中的 extra 键下。

{
    "extra": {
        "jb-composer-deploy": {
            "target-dir": "relative path to the folder where you want to deploy",
            "folders": [
                "list of folders name to deploy"
            ],
            "exclude": [
                "full package name to exclude"
            ],
            "symlink": false,
            "relative": false
        }
    }
}
  • target-dir : 要部署的目标文件夹的相对路径(必填)
  • folders : 要部署的文件夹名称数组
  • exclude : 要排除的完整包名数组
  • symlink : 使用符号链接进行部署
  • relative : 使用符号链接相对路径进行部署(符号链接必须设置为 true)

在运行命令之前,目标目录必须存在

示例

在此示例中,所有来自项目包的 js 和 css 文件夹都将通过硬拷贝(无符号链接)部署到 web/composed 文件夹中,除了 doctrine/orm 包中的那些。

{
    "require": {
        "doctrine/orm": "~2.2,>=2.2.3",
        "doctrine/doctrine-bundle": "~1.2",
        "jbouzekri/composer-deploy-plugin": "~1.0"
    },
    "extra": {
        "jb-composer-deploy": {
            "target-dir": "web/composed",
            "folders": [
                "js",
                "css"
            ],
            "exclude": [
                "doctrine/orm"
            ],
            "symlink": false,
            "relative": false
        }
    }
}

假设第一次 composer 安装已创建以下 vendor 树

  • composer.phar
  • composer.json
  • vendor/jbouzekri/composer-deploy-plugin
  • vendor/jbouzekri/composer-deploy-plugin/css
  • vendor/doctrine/orm
  • vendor/doctrine/orm/src
  • vendor/doctrine/orm/css
  • vendor/doctrine/doctrine-bundle
  • vendor/doctrine/doctrine-bundle/src
  • vendor/doctrine/doctrine-bundle/css
  • vendor/doctrine/doctrine-bundle/js

配置部署插件后,每次 composer install 或 update 都会将所有包的 css 和 js 文件夹复制到 web/composed 文件夹中,创建以下树

  • web/composed/doctrine-orm/css
  • web/composed/doctrine-bundle/css
  • web/composed/doctrine-bundle/js

许可

MIT