会。--no-plugins 使 composer 完全跳过插件扫描、实例化与调用,包括 vendor/、全局及 extra.plugins 声明的插件;需置于命令后其他选项前,否则无效;ci 中应显式使用以防意外 hook。

composer install --no-plugins 会彻底跳过插件加载吗?
会。加了 --no-plugins 后,Composer 完全不扫描、不实例化、不调用任何插件,连 PluginInterface::activate() 都不会触发——不是“禁用功能”,而是“跳过整个插件生命周期”。它不区分来源:项目 vendor/ 下的、全局 ~/.composer/vendor/ 下的、甚至通过 extra.plugins 声明的,一并忽略。
为什么 --no-plugins 必须放在命令后、其他选项前?
因为 Composer 解析参数时按顺序匹配,--no-plugins 是早期开关,影响插件加载流程的启动判断。位置错就等于没生效:
- ✅ 正确:
composer install --no-plugins --with-dependencies - ❌ 错误:
composer install --with-dependencies --no-plugins(旧版 Composer 可能静默忽略) - ❌ 错误:
composer --no-plugins install(等价于composer --help)
CI 脚本里如果封装了 wrapper(如 bin/composer),还要确认它没自动注入插件相关 flag。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
禁用插件后哪些行为会变?
插件被跳过 ≠ 功能完全消失,但依赖插件的逻辑会降级或失败:
-
hirak/prestissimo被禁用 → 回退到串行下载,composer install明显变慢 -
phpstan/extension-installer被禁用 → PHPStan 扩展不会自动注册,phpstan analyse可能报“unknown rule” - 某些自定义 installer(如处理 .phar 或私有协议)被禁用 → 直接报错 “Could not parse version constraint” 或卡在下载阶段
-
vendor/bin/下的可执行文件(如php-cs-fixer)不受影响 —— 它们不是插件,只是普通二进制
想只禁用某一个插件,有办法吗?
没有命令行原生支持。Composer 不提供 --disable-plugin=xxx 这类细粒度开关。可行路径只有三条:
- 在
composer.json的extra字段中显式声明:"disabled-plugins": ["vendor/package-name"](需 Composer ≥2.2) - 临时重命名或删掉
vendor/vendor-name/package-name目录(注意:这会影响 autoload,且下次install可能报错) - 用环境变量
COMPOSER_NO_PLUGINS=1替代(效果等同--no-plugins,但更隐蔽,容易漏掉)
真正关键的不是“怎么选”,而是意识到:插件一旦激活,就能 hook 到 install、update、dump-autoload 等几乎所有核心流程——所以 CI 中每条 Composer 命令都该显式带上 --no-plugins,不能靠“默认安全”来赌。










