有没有办法用作曲家卸载开发依赖项?
Posted
技术标签:
【中文标题】有没有办法用作曲家卸载开发依赖项?【英文标题】:Is there a way to uninstall dev dependencies with composer? 【发布时间】:2012-11-24 12:35:42 【问题描述】:我想卸载(而不是从我的 composer.json 中删除)一个项目的开发依赖项。
有没有简单的方法可以做到这一点?
【问题讨论】:
到目前为止您尝试过什么?你被困在哪里了? 【参考方案1】:运行 install
或 update
和 --no-dev
现在应该删除开发要求及其依赖项。
出于历史目的的原始答案:
其实没有。当然,您可以从供应商目录手动 rm -rf 它们,但是在您使用 --dev 进行安装后,composer 无法卸载开发需求。这不是一个巨大的用例,但如果您想在 github 上报告问题,可能需要一个新的命令行开关。
【讨论】:
这种行为现在已经改变。您只需将 --dev 开关添加到 composer update 以物理删除开发包 明确一点,命令是composer install --no-dev
。这将删除开发包,使composer.json
和composer.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
(例如)
【讨论】:
以上是关于有没有办法用作曲家卸载开发依赖项?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法为 package.json 中的相同依赖项指定不同的路径?