使用 --no-scripts 参数可跳过脚本执行,确保依赖安装不受自定义脚本错误影响,命令为:composer install --no-scripts。

在使用 composer install 时,如果项目中的 composer.json 定义了某些脚本(如 post-install-cmd),而这些脚本执行失败导致安装中断,可以通过参数跳过脚本执行来完成依赖安装。
使用 --no-scripts 跳过所有脚本
最直接的方式是添加 --no-scripts 参数,这样 Composer 将不会执行任何定义在 scripts 中的命令,包括:- post-root-package-install
- post-create-project-cmd
- post-install-cmd
- pre-update-cmd 等
运行命令如下:
composer install --no-scripts
这能确保只安装依赖包,不触发项目自定义逻辑,适用于临时规避因脚本错误(如权限问题、命令不存在)导致的中断。
结合其他常用选项提升稳定性
在实际操作中,可组合使用以下参数进一步控制行为:- --no-dev:跳过开发环境依赖(如 phpunit、phpcs)
- --optimize-autoloader 或 -o:优化自动加载性能
- --classmap-authoritative:仅使用 classmap,加快类加载
例如生产环境部署常用命令:
composer install --no-scripts --no-dev -o
选择性禁用特定脚本组
Composer 本身不支持按名称过滤脚本,但可通过临时修改composer.json 或设置环境变量控制脚本内部逻辑。例如,在脚本中检查环境:
"scripts": {
"post-install-cmd": [
"if [ \"$SKIP_POST_SCRIPTS\" != \"1\" ]; then php artisan optimize; fi"
]
}
然后执行:
Skip_POST_SCRIPTS=1 composer install
这种方式适合需要精细控制的场景。
基本上就这些。若只是想快速完成依赖安装并稍后手动处理脚本,composer install --no-scripts 是最简单有效的方案。










