给 composer 的 vendor 目录瘦个身
2014-02-22 15:52
1491 查看
VendorCleaner
VendorCleaner 是一个 vendor 目录的清理程序。编写此工具的初衷是有许多朋友一直在抱怨 laravel 的 vendor 目录太过臃肿,事实上 vendor 目录中确实存在许多运行时非必要的文件。VendorCleaner 可以帮助你快速的缩减 vendor 目录的体积。并且,它可以工作在任何使用 Composer 的框架中,而不仅仅局限于 laravel。在什么情况下使用 VendorCleaner?
由于主机商的限制无法在部署阶段使用 Composer,需要由本地打包 Vendor 目录上传。Composer 默认安装的 Vendor 目录存在部分非必要文件,造成 Vendor 目录臃肿。
是否有框架限制?
没有。任何使用 Composer 的项目均可使用。
使用效果如何?
laravel-4.1 下进行测试,Vendor 目录瘦身近50%。如何使用此项目?
在 composer.json 文件中申明依赖:"five-say/vendor-cleaner": "1.*"
在 composer.json 文件 scripts 属性中加入对应的脚本事件回调:
"scripts": { ... "pre-update-cmd": [ "FiveSay\\VendorCleaner::restore" ], "post-update-cmd": [ "FiveSay\\VendorCleaner::backup", ... ], ... },
如此,在每次 update 操作时都将触发 vendor 目录的清理程序。
注意:
FiveSay\\VendorCleaner::backup负责在每次更新后清理 Vendor 目录,清理完成后将在 Vendor 同级目录生成 VendorCleanerBackup 文件夹,用于存放清理出来的文件。而
FiveSay\\VendorCleaner::restore则会在每次更新前将备份的文件放回 Vendor 目录,以确保 Composer 不会下载多余的文件,加快更新速度。
如何自定义清理规则?
默认使用的规则文件位于/vendor/five-say/vendor-cleaner/src/FiveSay/VendorCleaner/VendorCleaner.config.php。如果需要使用自定义的规则,在 Vendor 同级目录建立自定义的
VendorCleaner.config.php即可(注意:这将完全使用用户自定义规则,而忽略默认规则文件)。
这里有一个简单的例子:
'ircmaxell/password-compat' => 'README.md test'
表示:清理 ircmaxell/password-compat 资源包中的 README.md 文件和 test 目录。
项目主页
5-say/VendorCleaner相关文章推荐
- 利用composer安装 yii没有vendor目录
- 解决composer下载yii2没有vendor文件夹问题
- 多余的.git目录出现在vendor的包内
- 关于vendor目录无法push到git问题
- laravel框架目录结构和composer.json目录结构
- 话说TP框架里的Vendor这目录是干什么用的啊?类库扩展thinkphp3.1版本
- Webpack构建项目时将vendor与app目录下的文件分开打包
- laravel 安装完成后安装 vendor 目录
- Windows7环境下Composer 安装包的Cache目录位置
- Laravel5.2目录结构及composer.json文件解析
- 【Yii2】Yii2执行完composer install 出现 vendor/bower/jquery/dist 找不到的解决方案
- composer 安装 laravel 出错: /usr/bin/env: php: 没有那个文件或目录
- Composer 将~/.composer/vendor/bin 添加到PATH
- Composer二进制供应库( vendor/bin目录)
- 我应该提交 vendor 目录中的依赖包吗?
- 运行laravel时 出现的异常及解决解决: cmd cd到根目录 前提安装了composer 输入:php artisan key:generate 将生成的key复制
- PHP Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/bin/composer/vendor/s
- Warning: No such file or directory in D:\WWW\XXX\vendor\composer\autoload_real.ph
- 安装node-sass提示没有vendor目录的解决办法
- Laravel5.2目录结构及composer.json文件解析