Composer如何将依赖包打包发布_使用Composer制作离线安装包【进阶】-composer

composer install –no-dev –prefer-dist 不能直接当离线包用,因默认不保留压缩包、校验信息和元数据,离线时仍会联网请求 packagist.org;需用 composer pack 预生成含 packages.json 的本地 artifact 仓库,并在 composer.json 中配置 “type”: “artifact” 指向该路径,方可完全离线安装。

composer install –no-dev –prefer-dist 为什么不能直接当离线包用

因为 composer install 默认只下载并解压包到 vendor/,不保留原始压缩包、哈希校验信息和元数据。离线环境安装时,Composer 仍会尝试访问 packagist.org 或其他仓库去获取 composer.lock 中记录的包 URL 和 checksum,一旦网络不通就报错:Could not fetch https://repo.packagist.org/p2/monolog/monolog.json。

真正能离线安装的前提是:让 Composer 完全绕过远程仓库,仅靠本地文件完成依赖解析与安装。这需要两个关键动作——预下载完整包存档 + 替换仓库源为本地路径。

用 composer archive 命令打包单个包不可行

composer archive 只是把某个已安装的包(比如 vendor/monolog/monolog)打成 zip,不包含其自身依赖、autoload 映射、版本约束等元信息,也无法被 composer require 或 install 识别为合法包源。

正确做法是利用 Composer 内置的 pack 功能(需 Composer 2.2+),它会按 composer.lock 中每个条目,下载完整 dist 包(.zip/.tar.gz)并附带 packages.json 索引:

composer pack --format=zip --output=offline-pkg.zip

执行后生成的 offline-pkg.zip 解压出来是标准的「本地仓库结构」:根目录含 packages.json,子目录按 vendor/name 分组存放各包的 dist 归档。

如何配置项目使用本地离线包仓库

在目标离线机器上,不能直接运行 composer install。必须先告诉 Composer:所有包都从本地找,而不是联网拉取。方法是在项目根目录创建或修改 composer.json 的 repositories 配置:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Composer如何将依赖包打包发布_使用Composer制作离线安装包【进阶】-composer
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996730+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996731+
  • 本周更新: 0+
  • 最后更新: 2026-03-16