有没有办法用composer卸载dev依赖项?


75

我想卸载(而不是从composer.json中删除)项目上的开发依赖项。

有没有简单的方法可以做到这一点?

Answers:


77

运行installupdate与一起运行,--no-dev现在应该删除开发人员需求及其依赖项。

出于历史目的的原始答案:

其实不行 当然,您可以从供应商目录中手动rm -rf它们,但是在使用--dev安装后,composer无法提供卸载开发需求的方法。这不是一个很大的用例,但是如果您想在github上报告问题,可以保证使用新的命令行开关。


10
现在,此行为已更改。您只需要在作曲家更新中添加--dev开关即可物理删除开发包
Matt Humphrey

8
为了清楚起见,命令为composer install --no-dev。这将删除保留的开发包composer.jsoncomposer.lock完整的文件。
子午线


25

寻找相同答案时遇到了这个问题。现在,您只需执行以下操作即可卸载已安装的dev依赖项:

composer --no-dev update

它将删除找到的所有开发包。虽然这会让人们像我一样登陆这里:)


不是最直观的命令行选项。但是它在那里!谢谢!
ljrh 2014年

如果您不强烈固定其他软件包的版本,这不是一个好主意,因为它不仅会删除dev deps,而且可能会更新其他软件包的当前版本。生产用途不一致。
brutto

当然可以,但这与原始问题完全无关。此外,在生产中,您永远不要使用composer update,始终composer install与已提交的composer.lock文件一起使用。话虽如此:您也可以使用该命令的选项。请参考已被修改为包含以下内容的已接受答案:Seldaek是作曲家。
Blizz

7

这不是严格的答案,但可以帮助某人。

删除特定的dev依赖项:

composer remove --dev squizlabs/php_codesniffer

2

我稍后再回答,但是它可以帮助其他人:( composer remove friendsofsymfony/elastica-bundle例如)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.