--no-plugins禁用所有插件以防止第三方扩展干预流程,--no-scripts跳过composer.json中定义的所有脚本执行;二者分层控制安全边界,常组合使用实现最小化执行。

这两个参数都用于限制 Composer 在安装或更新依赖时的自动行为,但作用对象不同,安全目标也略有差异。
--no-plugins:禁用所有插件
Composer 插件是第三方包提供的扩展机制,能 hook 到安装流程中(比如自动执行构建、修改 autoload、触发钩子等)。--no-plugins 会完全跳过插件的加载和执行,包括 composer/installers、ocramius/package-versions 或自定义插件。
适用场景:
- 在 CI/CD 环境中防止插件执行非预期操作(如调用外部 API、写入敏感路径)
- 调试依赖问题时排除插件干扰
- 审计阶段确保只运行核心逻辑,不引入第三方扩展行为
--no-scripts:跳过所有脚本(scripts)
Scripts 是 composer.json 中 "scripts" 字段定义的命令,例如 "post-install-cmd"、"pre-autoload-dump" 等。这些脚本由 Composer 自己执行(默认使用 PHP 进程),可能运行任意代码(如生成文件、清理缓存、执行测试)。
--no-scripts 不影响插件加载,但会跳过所有 script 阶段——哪怕插件注册了 script 钩子,也不会触发。
标签: php js 前端 json composer 解压 区别
还木有评论哦,快来抢沙发吧~