使用 --no-scripts 可跳过 composer.json 中定义的脚本执行,适用于避免部署前因环境不完整导致的脚本错误、Docker 构建时仅安装依赖、排查安装问题及手动控制脚本执行流程。

当你运行 composer install 或 composer update 时,Composer 默认会执行在 composer.json 中定义的脚本(scripts),比如自动执行生成 autoload 文件、清理缓存、发布配置等。这些脚本通常写在 "scripts" 字段中。
--no-scripts 选项的作用是跳过这些脚本的执行。它适用于一些特定场景,避免不必要的操作或潜在问题。
有些项目在 post-install-cmd 或 post-update-cmd 中定义了自定义命令,比如:
如果你只是想安装依赖而不希望触发这些操作(例如在部署前预安装依赖),就可以使用 --no-scripts 来防止脚本运行,避免在不完整环境中报错。
在 Docker 构建过程中,你通常只需要把 PHP 依赖安装好,但不想在这个阶段运行任何应用级命令(如清缓存、发版脚本等)。
这时候使用:
composer install --no-scripts --no-dev可以确保只安装代码依赖,不触发任何额外逻辑,提升构建稳定性和速度。
如果 Composer 安装完成后报错,但不确定是安装过程本身的问题还是某个脚本导致的,可以加上 --no-scripts 排除干扰。
通过对比有无该选项的行为差异,能更快定位问题来源。
有些团队希望完全掌控脚本执行顺序,比如先改配置再清缓存。这时可以先用 --no-scripts 跳过自动执行,之后再手动运行需要的命令。
基本上就这些常见用途。使用 --no-scripts 不复杂,但在关键流程中能有效避免副作用。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号