--dir 参数必须显式指定且路径需已存在,不自动创建父目录,不支持波浪号或环境变量;唯一例外是未指定时默认创建 dist/ 目录。

composer archive --dir 参数必须显式指定,且目标路径需已存在;它不自动创建父级目录,也不支持波浪号或环境变量。
--dir 参数的路径行为和常见错误
Composer 不会帮你创建 --dir 指定路径的父级目录。比如执行 composer archive --dir=./a/b/c,要求当前目录下 a/b 必须已存在,否则报错:Could not create archive: failed to open stream: No such file or directory。
-
--dir=dist和--dir=./dist效果一致,推荐用前者更简洁 -
--dir=../releases可行,但需确保上层目录可写 -
--dir=~/releases❌ 无效,波浪号~不被展开 -
--dir=$HOME/releases❌ 无效,shell 变量不被 Composer 解析 - Windows 下统一用正斜杠
/,反斜杠\可能被 shell 错误解析
archive-dir 配置项根本不管用
别在 composer.json 里写 "archive-dir": "dist" 想控制输出位置——这字段只影响 composer install 过程中临时解压归档包的路径(如 vendor/composer/archives),和 archive 命令零关系。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
archive-dir是 Composer 内部缓存路径,不是打包输出路径 - 它不读取、不生效于
composer archive命令 - 试图靠它省掉
--dir参数,结果只会输出到默认的dist/(若不存在则自动创建)或当前目录
怎么安全地组合使用 --dir 和 --format
--dir 和 --format 可自由组合,但要注意格式后缀由 --format 决定,--file 不要带扩展名。
-
composer archive --format=zip --dir=./releases --file=prod-202605→ 输出./releases/prod-202605.zip -
composer archive --format=tar --dir=./build→ 输出./build/my-project-1.0.0.tar(不是 .tar.gz) - 想生成 .tar.gz?得手动后续处理:
gzip ./build/my-project-1.0.0.tar - 没写
--dir时,默认尝试写入dist/;若该目录不存在,Composer 会自动创建它——这是唯一例外
真正容易被忽略的是:所有路径判断都基于项目根目录(即 composer.json 所在位置),而不是你当前终端所在路径;哪怕你用 -d 切换了工作目录,--dir 的解析依然以项目根为基准。这点在 CI 脚本里尤其容易出错。

















