可以直接将本地文件夹配置为Composer的artifact仓库,需用ZIP/TAR归档(非源码目录),归档内路径须为“包名-版本号”,composer.json中version须与文件名一致,url须为绝对路径。
可以直接把本地文件夹配置为 Composer 的 artifact 仓库,适合离线环境、快速测试或临时发布未托管的包。关键在于用 artifact 类型仓库指向一个包含 ZIP/TAR 归档文件的目录,而不是源码目录。
Composer 的 artifact 仓库不接受原始代码文件夹,只识别压缩包(.zip、.tar、.tar.gz、.tgz)。你需要先打包你的包:
composer.json(含 name、version、autoload 等必要字段)zip -r myvendor/mypackage-1.0.0.zip mypackage/myvendor/mypackage-1.0.0/),否则可能 autoload 失败/path/to/artifacts/
在你主项目的 composer.json 中添加 repositories 配置:
{
"repositories": [
{
"type": "artifact",
"url": "/path/to/artifacts/"
}
],
"require": {
"myvendor/mypackage": "^1.0"
}
}
⚠️ 注意:url 必须是绝对路径(Linux/macOS)或 Windows 绝对路径(如 C:/artifacts/),不能是相对路径;该路径末尾斜杠可选但建议加上。
运行 composer install 或 composer update 时:
url 目录下所有支持格式的归档文件,提取其中的 composer.json 来构建可用包列表require 中的包名和版本约束(如 ^1.0 会匹配 1.0.0、1.0.1)vendor/,行为与 Packagist 安装一致composer update --lock 或删掉 composer.lock 重新 install 才能识别新版本不要把源码目录直接当 artifact 用 —— artifact 不支持 git/svn 路径或文件夹直连;
归档内 composer.json 的 version 字段必须与文件名中的版本一致(如 mypackage-1.2.3.zip 里 composer.json
的 "version": "1.2.3");
多个版本可共存于同一 artifact 目录,无需子目录结构。