欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

运行 composer install --prefer-dist 安装自己发布的包,--prefer-dist 参数未生效 有大用

问题情景

composer 在安装扩张包的时候提供了--prefer-dist 和 --prefer-source 这两个参数,简书上的文章composer --prefer-dist 和 --prefer-source 的区别 写的很清晰。

--prefer-dist 会从github 上下载.zip压缩包,并缓存到本地。下次再安装就会从本地加载,大大加速安装速度。但她没有保留 .git文件夹,没有版本信息。适合基于这个package进行开发。
--prefer-source 会从github 上clone 源代码,不会在本地缓存。但她保留了.git文件夹,从而可以实现版本控制。适合用于修改源代码。

我找了一个扩展(psr/log)测试了一下,确实如此。

但我遇到的问题是 自己开发的扩展包发布到packagist之后,指定 --prefer-dist 依旧会从git上clone源代码

我的测试环境

目标扩展包

发布的扩展包

目标扩展包代码仓库

扩展包代码仓库

测试项目的 composer.json 文件配置

{
    "name": "vagrant/demo-app",
    "authors": [
        {
            "name": "caojianfei",
            "email": "jackcjf@163.com"
        }
    ],
    "require": {
        "caojianfei/composer-lib-example-one": "^1.0"
    }
}

composer 命令

composer install --prefer-dist

vagrant@homestead:~/Code/practice/demoApp$ composer install --prefer-dist

Loading composer repositories with package information

Updating dependencies (including require-dev)

Package operations: 1 install, 0 updates, 0 removals

- Installing caojianfei/composer-lib-example-one (v1.0.1): Cloning 9f79c28b09 from cache

Writing lock file

Generating autoload files

从结果看出,composer 依旧 clone 了源代码,而不是从代码仓库上下载 压缩文件,想请问一下问题出在哪个环节?谢谢!

这个问题在将代码仓库从 gitee 迁移到 github 之后就没有了。

后面那么大两个 from cache 呢。

composer clear-chache
Jeffrrey

清除缓存之后依旧会从代码仓库克隆


来自 https://segmentfault.com/q/1010000020400013


普通分类: