jbouzekri / composer-deploy-plugin
使用 composer 在公共文档根文件夹中自动部署静态文件
v1.0.1
2015-07-04 12:39 UTC
Requires
- composer-plugin-api: ^1.0
- symfony/filesystem: ~2.0
- symfony/finder: ~2.0
- symfony/options-resolver: ~2.0
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 install
或 composer 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