使用 composer install --no-scripts 可避免执行 composer.json 中的脚本,适用于 CI/CD 构建、生产环境部署等场景,确保仅安装依赖而不触发配置生成、缓存清理或数据库迁移等操作,防止开发脚本影响生产环境,提升安装速度与稳定性。

当你运行 composer install --no-scripts 时,Composer 会安装项目依赖,但跳过执行定义在 composer.json 中的脚本。这个命令主要用于一些特定场景,避免自动执行可能带来副作用的操作。
1. 避免自动执行部署或构建脚本
有些项目在 composer.json 中定义了 post-install-cmd 脚本,比如自动生成配置文件、清除缓存、执行数据库迁移等。在某些环境下,你只想装依赖,不希望触发这些操作。
例如:- 在 CI/CD 构建阶段,仅需安装代码依赖,不需要运行迁移或清缓存
- 在生产环境部署前的检查阶段,先测试依赖是否能正常安装
2. 防止开发脚本影响生产环境
开发环境中常见的脚本如生成 .env 文件、执行 artisan key:generate(Laravel)、创建软链接等,如果在生产环境自动运行,可能导致配置冲突或安全问题。
使用 --no-scripts 可以确保:- 不会意外生成本地开发用的密钥或配置
- 避免执行需要交互或特殊权限的命令
3. 提高安装速度和稳定性
某些脚本执行时间较长或依赖外部服务(如数据库连接),在批量部署或容器构建时,跳过它们可以加快流程并减少失败风险。
典型应用:- Docker 镜像构建时只关心 PHP 依赖安装
- 多服务器并行部署时统一先装依赖,再集中执行脚本
基本上就这些。当你需要“只装包,不做事”的时候,--no-scripts 就派上用场了。安全、可控,特别适合自动化流程。










