
composer require 安装插件时提示 Package not found
不是包名写错了,就是仓库源没配对。Composer 默认只查 packagist.org,但很多公司私有插件或国内镜像未同步最新包,就会报这个错。
- 先确认包名是否完整——比如想装 Laravel 的调试工具,得写
composer require barryvdh/laravel-debugbar,少个barryvdh/就找不到 - 检查当前源:运行
composer config -g repo.packagist,如果返回的是https://packagist.org,但你网络连不上,就得切镜像,比如国内常用composer config -g repo.packagist composer https://packagist.phpcomposer.com(注意:该镜像已停用,推荐用https://packagist.org+ 代理,或阿里云源https://mirrors.aliyun.com/composer/) - 私有包必须提前配置
repositories,在composer.json里加一段:{"type": "vcs", "url": "https://git.example.com/my-plugin"},否则require直接忽略
composer install 和 composer update 行为差异很大
install 是照着 composer.lock 装,update 是按 composer.json 重新解析依赖树并更新锁文件。线上部署必须用 install,否则可能装出和开发环境不一致的版本。
易优电脑系统教程下载网站源码是基于易优cms开发,适合做系统软件下载类网站使用, 内核为Thinkphp5.0开发,后台简洁,为系统软件下载类开发,这是一套安装就能建站的程序, 不定期更新程序BUG,更新网站功能。 我们提供的不仅是源码模板这么简单,我们还提供程序相关咨询、协助安装等服务。 默认不包含小程序插件,需要另外单独购买插件。 模板安装步骤 1、
-
composer install:跳过composer.json里的版本约束,只认composer.lock里锁定的提交哈希或确切版本号,快且确定 -
composer update:重新走一遍依赖解析,会升级所有允许范围内的包(比如"monolog/monolog": "^2.0"可能从2.9.1升到2.10.0),还可能触发post-update-cmd脚本 - CI/CD 流水线里误用
update是常见事故源头——它会改composer.lock,下次别人git pull后再install,实际装的却是你上次update写死的版本
安装插件后命令不生效,比如 phpunit 或 larastan
Composer 插件分两类:一类是全局工具(如 phpstan/phpstan),另一类是项目内依赖(如 phpunit/phpunit)。后者默认不注册二进制命令,得手动加 bin 配置或用 vendor/bin/ 路径调用。
- 确认插件是否声明了
bin字段:看它的composer.json里有没有"bin": ["phpunit"];没有的话,即使require进来了,也得用vendor/bin/phpunit显式调用 - 全局安装(
composer global require phpunit/phpunit)看似方便,但 PHP 版本、扩展差异会导致命令失效,而且global的路径容易被系统 PATH 忽略,不如项目内装 +vendor/bin/前缀可靠 - 某些插件(如
laravel/pint)要求 Laravel >= 10,但你的项目是 9.x,require成功了,命令却报Class not found——得看插件文档的require约束,别只信 Composer 的安装成功提示
依赖包体积太大,composer install 卡在 Downloading...
不是网速问题,是 Composer 默认下载完整 Git 仓库(含历史记录),尤其对 GitHub 上的大仓库(比如 symfony/symfony)特别慢。它其实只需要某次 tag 的代码,但没设法绕过克隆。
- 启用
dist模式优先下载压缩包:在composer.json加"prefer-dist": true
,这是默认值,但如果之前手动改过"prefer-source": true,就得删掉 - 禁用 Git 克隆行为:运行
composer config --global github-protocols https,避免 SSH 协议卡在认证环节 - 某些包(如
drupal/core)本身把测试文件、文档全打进 dist 包,可加"archive": {"exclude": ["/tests/", "/docs/"]}到composer.json,但仅限你自己维护的包;第三方包无法干预,只能接受体积









