composer 认出私有 packagist 需在 composer.json 的 repositories 数组首位配置 type 为 composer、url 以 / 结尾的源,并禁用 packagist.org;认证需正确放置 auth.json(含 http-basic 凭据);本地开发可用 path 类型仓库快速测试。

怎么让 Composer 认出你的私有 Packagist
Composer 不会自动信任任意 URL,必须显式声明源类型为 composer,且 URL 必须以 / 结尾——否则它会拼成 https://pkgs.example.com/packages.json(正确)变成 https://pkgs.example.compackages.json(404)。
- 在项目根目录的
composer.json中,把私有源放在repositories数组**第一位** - 写法必须是:
{ "type": "composer", "url": "https://packagist.myorg.com/" }(注意末尾斜杠) - 务必加上
"packagist.org": false,否则同名包可能从官方源“偷偷”装进来,覆盖你本意要拉的私有版本 - 执行
composer clear-cache再composer install,不然缓存里还是旧元数据
为什么 curl 能通但 Composer 报 401 或 Authentication required
不是服务没开,是认证凭据根本没送到请求头里。Composer 查 auth.json 的路径有固定顺序:当前目录/auth.json → $COMPOSER_HOME/auth.json → $HOME/.composer/auth.json(旧版),漏掉任何一个环节都会失败。
- 别把 token 硬编码进
composer.json,那是安全红线 - CI 环境中
$COMPOSER_HOME常为空,结果它去读了空的全局auth.json,而不是你传进去的临时文件 - 正确的
auth.json格式:{ "http-basic": { "packagist.myorg.com": { "username": "", "password": "your-api-token" } } } - 如果用的是 GitHub Packages / GitLab Registry 这类平台,用户名通常填
token,密码填实际 token 字符串
自建镜像该选 Satis 还是 packagist-private
除非你真需要 Web 界面、用户登录、包审核流程,否则直接上 Satis。它不跑 PHP-FPM、不连数据库、不处理 CSRF,只生成静态 packages.json 和 ZIP 包,配个 Nginx 就能当源用,运维成本低一个数量级。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Satis 最低要求 PHP 7.4,推荐用官方
satis:latestDocker 镜像 -
satis.json中必须有name和homepage字段,否则 Composer 直接拒绝加载该源 - 若要包含
dev-分支,得显式设"require-dependencies": true,不然依赖树不全 - 常见报错
Skipping package myorg/utils, no suitable releases found,八成是 Git 权限问题或 tag 没推上去,Satis 不会帮你 clone 私有仓库
本地开发时怎么跳过 Packagist 直接试包
别等提交、打标、同步、再安装——太慢,也容易掩盖 autoload 或命名空间问题。用 path 类型仓库,让 Composer 直接 symlink 本地目录,改完立刻生效。
- 在测试项目的
composer.json里加:"repositories": [{ "type": "path", "url": "../my-awesome-package" }] - 然后运行
composer require myvendor/awesome-package:dev-main(dev-main指向分支,不是 tag) - 这个方式绕过所有网络、认证、tag 解析环节,专治“装得上但类找不到”这类 autoload 错误
- 注意:
path源不能用于生产环境,发布前必须切回真实私有源或 Packagist
最常被忽略的点是:URL 末尾斜杠、auth.json 放错位置、以及以为打完 tag 就万事大吉——其实 Packagist 只认 v1.0.0 这种带 v 前缀的语义化标签,1.0.0 或 release-1.0 都无效。










