process-timeout建议设为600(开发机)或1800(CI/CD),禁用超时应通过环境变量而非config;fxp-asset插件已废弃,需删除相关配置并改用asset-packagist.org;sort-packages应设为true以提升协作效率;私有仓库认证信息必须通过auth.json管理,禁止硬编码。
config 里的
设多少才不超时又不浪费资源
Composer 安装或更新卡在 “Loading
composer
repositories with package information” 或 “Updating dependencies” 很久,大概率是
太小——它控制的是每个外部命令(比如
、
)的最长执行时间,单位秒,默认只有 300(5 分钟)。
真实场景下,私有 GitLab 仓库响应慢、CI 环境带宽受限、或拉取大体积包(如含二进制的
)时,300 秒根本不够。但设成
(禁用超时)也不推荐:万一网络彻底卡死或远程服务假死,Composer 会无限挂起,CI 流水线直接阻塞。
普通开发机建议设为
(10 分钟),兼顾稳定性与响应感
CI/CD 环境可设为
(30 分钟),并配合超时兜底(如 GitHub Actions 的
)
绝对不要在
里写
,改用环境变量
临时覆盖更安全
已废弃,
还要不要配
2018 年后 Composer 2.x 原生支持
的等效能力(通过
或自建 asset VCS),所以这个插件本身已停更。但很多人还在
的
里留着
或类似字段——这不仅无效,还可能触发 Composer 2.2+ 的警告甚至报错:
删掉所有含
、
、
相关的
键值对
如果项目仍依赖 Bower/NPM 包(如
、
),改用
作为仓库:
确认
中不再出现
的条目,否则运行
清理
开关影响 lock 文件可维护性
控制
里
和
数组是否按字母序排列。默认
,但强烈建议设为
——这不是“美观问题”,而是协作效率问题。
php版微信js-sdk支付接口类
php版微信js-sdk支付接口类
下载
关闭时,每次
新包,新条目总追加到数组末尾,多人同时增删依赖会导致
出现大量无意义 diff(同一包在不同人机器上位置不同)
开启后,所有包按
字母序固化,Git 合并冲突大幅减少,
只反映真实变更
注意:该配置只影响新生成的
文件,已有
不会自动重排;需先删
,再运行
重建
私有仓库认证信息别硬编码进
有人把 GitLab 或 Nexus 的 token 直接写在
的
或自定义键里,这是严重安全隐患:一旦代码推送到公开仓库或被误提交,凭据立刻泄露。
一律用
管理凭证:
(全局)或项目根目录下的
(需加
)
格式必须严格:
里只保留仓库声明,例如:
,认证由
自动匹配域名
哪怕只是本地开发,也别图省事往
里塞密码——CI 环境通常靠环境变量注入 token,而
支持从
读取 JSON 字符串,这才是标准链路。
process-timeoutprocess-timeoutgit clonesvn exportlaravel/sail06001800timeout-minutesconfig"process-timeout": 0COMPOSER_PROCESS_TIMEOUT=0fxp-assetconfig.plugin.autoloadfxp/composer-asset-pluginasset-packagist.orgcomposer.jsonconfig"plugin-autoloader": trueThe "fxp/composer-asset-plugin" plugin requires composer-plugin-api 1.0.0, this *N*.* is not supported.fxpplugin-autoloaderassetconfigjquerybootstrapasset-packagist.org"repositories": [{"type": "composer", "url": "https://asset-packagist.org"}]composer.lockfxp/composer-asset-plugincomposer update --lockconfig.sort-packagessort-packagescomposer.lockpackagespackages-devfalsetruecomposer requirecomposer.locknamedifflocklockcomposer.lockcomposer installconfigcomposer.jsonconfig.gitlab-tokenauth.json~/.composer/auth.jsonauth.json.gitignore{"http-basic": {"your.repo.tld": {"username": "xxx", "password": "yyy"}}, "gitlab-token": {"gitlab.com": "zzz"}}config"repositories": [{"type": "composer", "url": "https://your.repo.tld/packages.json"}]auth.jsonconfigauth.jsonCOMPOSER_AUTH