Satis是Composer官方推荐的轻量级私有仓库生成工具,通过配置satis.json指定需镜像的包(如doctrine/orm、guzzlehttp/guzzle等),结合require-all设为false实现精准控制,避免全量同步;利用satis build命令生成包含packages.json和dist文件的静态仓库,部署至内网Web服务器后,客户端通过添加仓库URL或全局配置优先使用内部源,提升安装速度并减少外部依赖,适合企业级PHP依赖管理。

在公司内部搭建一个轻量级的 Composer 代理,既能提升依赖安装速度,又能避免对 packagist.org 的频繁请求,还能精确控制哪些包可以被使用。Satis 正是为此设计的工具——它是一个静态的 Composer 仓库生成器,能让你只镜像需要的包,而不是整个 Packagist。
Satis 是 Composer 官方推荐的一个工具,用于构建私有的、精简的 Composer 镜像仓库。它不像完全镜像那样同步所有包,而是根据你配置的规则,只抓取指定的包及其版本,生成一个 packages.json 文件供 Composer 使用。
这意味着你可以:
通过 Composer 全局或项目方式安装 Satis:
composer global require composer/satis确保 ~/.composer/vendor/bin 在你的 PATH 中,以便使用 satis 命令。
初始化配置文件:
satis init这会生成一个默认的 satis.json 文件。
编辑 satis.json,明确列出你需要的包。例如:
关键点说明:
false 表示只处理 require 中列出的包,不递归抓取全部依赖运行构建命令:
satis build satis.json .Satis 会:
web/packages.json
web/dist/ 目录完成后,web/ 目录就是一个完整的静态 Composer 仓库。
将 web/ 目录部署到公司内网 Web 服务器,比如 Nginx:
确保 PHP 不需要执行,这只是静态文件服务。
在项目 composer.json 中添加仓库:
或者全局设置(推荐给所有员工):
composer config -g repositories.company composer https://packages.mycompany.com这样 Composer 会优先从你的 Satis 源查找包,未命中时才会回退到 packagist.org(除非你设置 "packagist.org": false 来禁用)。
建议通过 CI/CD 或定时任务定期重建仓库:
# crontab -e 0 3 * * * cd /path/to/satis && satis build satis.json . >> build.log 2>&1也可以结合 webhook,在你关注的包有新版本时触发重建。
基本上就这些。Satis 虽然功能简单,但非常适合构建轻量、可控的内部 Composer 代理。不复杂但容易忽略的是:一定要关掉 require-all,否则可能意外拉取成千上万个包,失去“轻量”的意义。
以上就是如何使用Satis只镜像你需要的Composer包_构建一个轻量级的公司内部Composer代理的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号