Composer/Laravel:如何添加/更新特定的包
Posted
技术标签:
【中文标题】Composer/Laravel:如何添加/更新特定的包【英文标题】:Composer/Laravel: How to add/update a specific package 【发布时间】:2014-08-02 06:34:59 【问题描述】:如何使用 Composer 添加/更新特定的包?我正在使用最新的 Laravel,也不确定它是否重要,但任何可以帮助确定答案的东西。
我还从我找到的旧 *** 帖子中尝试了以下内容,但它对我不起作用。它将包附加到 composer.json,然后继续更新所有内容。这是链接:How to update a single library with Composer?
这是我尝试添加到项目中的包:https://github.com/barryvdh/laravel-dompdf
非常感谢您的宝贵时间和帮助!
编辑:
Require 和 update 不起作用,它们也会更新所有内容。我是否有可能错误地运行命令?当谈到作曲家时,我仍然耳目一新:S
$ composer require barryvdh/laravel-dompdf
lease provide a version constraint for the barryvdh/laravel-dompdf requirement: *
/composer.json has been updated
oading composer repositories with package information
pdating dependencies (including require-dev)
- Removing orchestra/testbench (v2.1.1)
- Removing symfony/security (v2.4.3)
- Removing symfony/translation (v2.4.3)
- Installing symfony/translation (v2.4.6)
Loading from cache
- Removing symfony/http-foundation (v2.4.3)
- Installing symfony/http-foundation (v2.4.6)
Loading from cache
- Removing symfony/event-dispatcher (v2.4.3)
- Installing symfony/event-dispatcher (v2.5.0)
Loading from cache
- Removing symfony/debug (v2.4.3)
- Installing symfony/debug (v2.4.6)
Loading from cache
- Removing symfony/http-kernel (v2.4.3)
- Installing symfony/http-kernel (v2.4.6)
Loading from cache
- Removing symfony/routing (v2.4.3)
- Installing symfony/routing (v2.4.6)
Loading from cache
- Removing symfony/process (v2.4.3)
- Installing symfony/process (v2.4.6)
Loading from cache
- Removing symfony/finder (v2.4.3)
- Installing symfony/finder (v2.4.6)
Loading from cache
- Removing symfony/dom-crawler (v2.4.3)
- Installing symfony/dom-crawler (v2.4.6)
Loading from cache
- Removing symfony/css-selector (v2.4.3)
- Installing symfony/css-selector (v2.4.6)
Loading from cache
- Removing symfony/console (v2.4.3)
- Installing symfony/console (v2.4.6)
Loading from cache
- Removing symfony/browser-kit (v2.4.3)
- Installing symfony/browser-kit (v2.4.6)
Loading from cache
- Removing swiftmailer/swiftmailer (v5.1.0)
- Installing swiftmailer/swiftmailer (v5.2.0)
Loading from cache
- Removing stack/builder (v1.0.1)
- Installing stack/builder (v1.0.2)
Loading from cache
- Removing patchwork/utf8 (v1.1.21)
- Installing patchwork/utf8 (v1.1.23)
Loading from cache
- Removing nesbot/carbon (1.8.0)
- Installing nesbot/carbon (1.9.0)
Loading from cache
- Removing monolog/monolog (1.9.0)
- Installing monolog/monolog (1.10.0)
Loading from cache
- Removing symfony/filesystem (v2.4.3)
- Installing symfony/filesystem (v2.5.0)
Loading from cache
- Installing symfony/security-core (v2.4.6)
Loading from cache
- Removing laravel/framework (v4.1.28)
- Installing laravel/framework (v4.1.30)
Loading from cache
- Removing chumper/datatable (2.2.2)
- Installing chumper/datatable (2.3)
Loading from cache
- Removing ivaynberg/select2 (3.4.6)
- Installing ivaynberg/select2 (3.4.8)
Loading from cache
- Installing phenx/php-font-lib (0.2.2)
Loading from cache
- Installing dompdf/dompdf (v0.6.1)
Loading from cache
- Installing barryvdh/laravel-dompdf (v0.3.1)
Loading from cache
symfony/security-core suggests installing symfony/validator (For using the user password constraint)
symfony/security-core suggests installing symfony/expression-language (For using the expression voter)
Generating autoload files
Compiling component files
Generating optimized class loader
【问题讨论】:
是否有任何具体原因说明您为什么只想更新单个包? 是的,我不希望更新所有内容,因为可能已经对可能会或可能不会破坏 Web 应用程序的各种包进行了更改,因此我不想冒险。我可能只是在 diff 目录中安装 composer 并添加我需要的包,然后我将它转移到我的主应用程序中的供应商。 【参考方案1】:上述解决方案对我不起作用,但是如果有人仍然遇到这个问题
composer require <package> --no-update
添加包时这对我有用
【讨论】:
【参考方案2】:我尝试了以下方法,它似乎对我有用。
您必须首先将barryvdh/laravel-dompdf
添加到composer.json
文件中。然后执行以下操作:
composer update barryvdh/laravel-dompdf --lock
【讨论】:
我试过composer require
,我试过composer update
,每次我运行它们时都没有运气,它再次更新了一切。我已经粘贴了一个屏幕转储供您查看并指出我正在犯的愚蠢错误。
我已经用似乎对我有用的方法改变了答案。
我刚才也用--lock
试过了,它仍然会再次更新所有内容。我想知道是不是因为包的作者说要将它添加到作曲家,如下"barryvdh/laravel-dompdf": "*"
如果没有指定版本号,作曲家命令是否必须更改?即composer update "barryvdh/laravel-dompdf":"*" --lock
。对不起,我只是不熟悉作曲家,所以我不确定我必须做什么,请原谅我的愚蠢。顺便说一句,非常感谢您的帮助!
在 1.6.3 版中使用 Composer 这实际上确实对我有用。但是,如果更新的包本身有一些要求,可能会有副作用。 Composer 当然会引入(更新)新的要求。我不确定现有需求、与其他库或应用程序共享的需求会发生什么。也许这也可能导致更新。这是not documentedAFAIK。【参考方案3】:
这里
composer update barryvdh/laravel-dompdf
composer docs
【讨论】:
如果你这样做,composer update
将更新 everything ,这就是 OP 的要求,而不是如何安装库
谢谢 0xshalaby,请参阅上面的帖子并发表评论,因为我对 require
或 update
都不满意 :(以上是关于Composer/Laravel:如何添加/更新特定的包的主要内容,如果未能解决你的问题,请参考以下文章
text Linux + php + composer + laravel在服务器端
Composer Laravel 安装错误:您的需求无法解析为一组可安装的软件包