有没有办法用作曲家卸载开发依赖项?

Posted

技术标签:

【中文标题】有没有办法用作曲家卸载开发依赖项?【英文标题】:Is there a way to uninstall dev dependencies with composer? 【发布时间】:2012-11-24 12:35:42 【问题描述】:

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

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

【问题讨论】:

到目前为止您尝试过什么?你被困在哪里了? 【参考方案1】:

运行 installupdate--no-dev 现在应该删除开发要求及其依赖项。

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

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

【讨论】:

这种行为现在已经改变。您只需将 --dev 开关添加到 composer update 以物理删除开发包 明确一点,命令是composer install --no-dev。这将删除开发包,使composer.jsoncomposer.lock 文件保持不变。【参考方案2】:

您可以在删除composer.json文件中的依赖后使用以下命令。

composer update

【讨论】:

请注意,因为这会导致 "require" 中的所有内容都被卸载和删除 在某些情况下,建议改为运行composer install 请在您的答案中添加一些解释,以便其他人可以从中学习。这还应该包含一个警告,该命令可能会更改许多其他包的版本【参考方案3】:

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

composer --no-dev update

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

【讨论】:

不是最直观的命令行选项..但它就在那里!谢谢! 如果您不强烈修复其他软件包的版本,这不是一个好主意,因为不仅会删除开发部门,而且可能会更新其他软件包的当前版本。与生产用途不一致。 当然,但这与原始问题完全无关。此外,在生产中,您永远不应该使用composer update,始终使用composer install 和提交的composer.lock 文件。话虽这么说:您也可以使用该命令的选项。请参考已接受的答案,该答案已修改为还包括以下内容:Seldaek 是作曲家的作者。 在生产环境中运行建议的命令确实很危险。 update 命令可能会更新您不打算更新的软件包,而您只想从供应商目录中删除 dev 依赖项。 如果您按预期在生产中使用作曲家,您将在那里有一个composer.lock-文件。这意味着该命令将准确更新 0 个依赖项,并且使用起来非常安全。顺便说一句,接受的答案(在我把它放在这里后更新了相同的信息)来自作曲家的作者。【参考方案4】:

这不是严格的答案,但可能会对某人有所帮助。

要删除特定开发依赖:

composer remove --dev squizlabs/php_codesniffer

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于有没有办法用作曲家卸载开发依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

识别提交的作曲家包的版本?

如何知道 Laravel 包需要哪些作曲家依赖项?

有没有办法为 package.json 中的相同依赖项指定不同的路径?

Composer 在更新依赖项时挂起

无论如何使用自定义 php 的 docker composer 图像?

作曲家说没有找到 Git