carlosio / compify
在发行版中包含测试和其他无用的信息,例如 .travis.yml,不是一个好主意。 "Compify" 尝试移除一切,以节省带宽和磁盘使用,但保留使包在您的应用程序或库中工作的必要代码。
Requires
- composer-plugin-api: ^1.0
- symfony/console: >=2.1,^3.0
- symfony/finder: >=2.1,^3.0
- symfony/process: >=2.1,^3.0
This package is auto-updated.
Last update: 2024-09-22 04:17:25 UTC
README
Compify 是一个用于节省 composer 供应商文件夹磁盘使用量和带宽的工具。
也许你没有注意到,但如果你在执行 php composer.phar install
后查看你的供应商文件夹,会发现很多无用的信息,例如测试、.travis.yml
等文件,这些在生产环境中你并不需要。
此外,考虑从源代码安装的包(使用 git clone
或 svn checkout
,而不是下载 zip 文件或基于方法的下载),它们包括 .git
或 .svn
等文件夹,相信我,你不想在生产环境中使用这些文件夹。
在大多数情况下,您将部署到生产环境并存储应用程序的不同版本,直接从您的服务器安装依赖项或从部署机器使用 rsync。因此,使用 compify 可以在部署时节省带宽或时间。
安装
本地
下载 compify.phar
文件并将其存储在您的计算机上的某个位置。
全局
您可以使用以下命令轻松从系统的任何位置访问 compify
$ sudo https://github.com/carlosbuenosvinos/compify/raw/master/compify.phar -O /usr/local/bin/compify
然后
$ sudo chmod a+x /usr/local/bin/compify
然后
$ sudo vi /etc/php/php.ini
# search for "basedir"
# add ":/usr/local/bin" at the end and save
然后,只需运行 compify
即可运行 compify
更新
本地
自更新命令尝试更新 compify 本身
$ php compify.phar self-update
全局
您可以通过此命令更新 compify
$ sudo compify self-update
用法
php compify.phar crush --help
Usage:
crush [vendor-path]
Arguments:
vendor-path Composer vendor path (default: "./vendor")
Help:
The crush command removes all the
unnecessary files for each composer
package in order to save disk usage
and bandwidth.
它如何工作
Compify 会遍历您机器上安装的每个本地 composer 依赖项,并移除针对该包的典型不必要文件和文件夹(我们称之为通用规则)。此外,我们还为特定包识别了特定规则,这些规则也将与通用规则合并。
public static $rules = array(
'generic-rules' => array(
'.git',
'.svn',
'test',
'tests',
'docs',
'doc',
'.gitattributes',
'.gitmodules',
'.gitignore',
'.travis.yml',
'CHANGELOG*',
'README*',
'phpunit.xml.*',
'LICENSE*'
),
'packages-rules' => array(
'twig/twig' => array(
'.editorconfig',
'AUTHORS',
'ext'
)
)
);
您可以通过添加新的包特定规则或任何明显的代码更新来做出贡献。
示例
假设有一个小项目,其 composer.json 如下所示
...
"require": {
"twig/twig": ">=1.8,<2.0-dev",
"symfony/twig-bridge": "2.1.*",
"swiftmailer/swiftmailer": "4.3.x-dev",
"symfony/console": "2.1.*",
"doctrine/dbal": "2.3.*",
"silex/silex": "1.0.*",
"guzzle/guzzle": "3.0.*"
},
...
$ php compify.phar crush
Crushing vendors (by Carlos Buenosvinos)
Vendor size before crushing: 73M
Vendor size after crushing: 18M
你需要更多参数吗?
更多信息
对于任何问题,请使用 github 系统的 PR,对于其他信息,请给我发电子邮件至 carlos.buenosvinos@gmail.com
许可
Compify 在 MIT 许可下授权。