--no-scripts是唯一可靠跳过composer.json中scripts字段所有生命周期脚本的方式,它不依赖环境变量、不修改配置、不影响autoload生成,仅拦截自动触发的钩子命令(如post-install-cmd、pre-update-cmd等),但对composer run-script无效,也不影响插件逻辑。

--no-scripts 是唯一能跳过 composer.json 中 scripts 字段定义的所有生命周期脚本的可靠方式。它不依赖环境变量,不修改配置,也不影响 autoload 生成——只做一件事:拦住那些自动跑的命令。
哪些命令支持 --no-scripts
该参数适用于所有主流 Composer 命令,但行为略有差异:
-
composer install --no-scripts:跳过post-install-cmd、post-root-package-install等安装后钩子 -
composer update --no-scripts:跳过pre-update-cmd、post-update-cmd -
composer require foo/bar --no-scripts:跳过更新流程中触发的所有脚本(包括post-autoload-dump) -
composer remove vendor/package --no-scripts:Composer 2.2+ 支持,同样跳过相关钩子
注意:--no-scripts 对 composer run-script 无效——它只影响自动触发的生命周期事件,不干预手动调用。
--no-scripts 不会跳过插件逻辑
很多报错都源于混淆这点:插件(如 ocramius/package-versions、phpstan/extension-installer)注册的钩子不属于 scripts 字段,而是通过 Composer 插件机制注入的。这些钩子不受 --no-scripts 控制。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 常见现象:
composer install --no-scripts仍报错Class 'PackageVersions\Versions' not found,说明插件已执行并失败 - 真正要禁用插件,得加
--no-plugins,和--no-scripts是正交开关 - 两者可共存:
composer install --no-scripts --no-plugins,适合审计或最小化构建
CI/CD 中加 --no-scripts 后为什么项目启动就报错?
不是参数错了,是跳过了关键初始化步骤。典型翻车点:
-
post-root-package-install没执行 →.env.example没复制成.env→ 应用读不到配置 -
post-autoload-dump被跳过 → Laravel 的优化类映射没生成 → 性能下降或Class not found -
post-install-cmd里有php artisan vendor:publish→ 配置文件缺失 → 启动时报路径错误
解决思路不是删参数,而是分阶段:先 composer install --no-scripts,再显式补必要动作,比如 composer run-script post-install-cmd 或单独执行 composer dump-autoload --optimize。
别信 COMPOSER_NO_INTERACTION=1 能跳脚本
这是新手最常踩的坑。这个环境变量只关闭交互提示(比如选版本、确认 license),对脚本执行完全无影响。
- 现象:
COMPOSER_NO_INTERACTION=1 composer install依然卡在post-update-cmd报错 - 误判根源:以为“非交互 = 不执行”,实际脚本照跑,只是不问你
- 真要跳脚本,必须显式写
--no-scripts,没有缩写,不能拼错成--no-script
脚本是否该被跳过,取决于它做了什么——而不是它叫什么名字。有些脚本只是本地开发便利性操作(比如开一个 dev server),上线环境根本不需要;有些却是运行前提(比如生成 classmap)。看清内容,再决定拦不拦。

















