carlosio/compify

在发行版中包含测试和其他无用的信息,例如 .travis.yml,不是一个好主意。 "Compify" 尝试移除一切,以节省带宽和磁盘使用,但保留使包在您的应用程序或库中工作的必要代码。

安装: 172

依赖项: 0

建议者: 0

安全: 0

星级: 34

关注者: 6

分支: 1

开放问题: 4

类型:composer-plugin

dev-master 2016-08-04 07:40 UTC

This package is auto-updated.

Last update: 2024-09-22 04:17:25 UTC


README

Compify 是一个用于节省 composer 供应商文件夹磁盘使用量和带宽的工具。

也许你没有注意到,但如果你在执行 php composer.phar install 后查看你的供应商文件夹,会发现很多无用的信息,例如测试、.travis.yml 等文件,这些在生产环境中你并不需要。

此外,考虑从源代码安装的包(使用 git clonesvn 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 许可下授权。