如何使用Composer更新单个库



我只需要为我的SF2发行版(DoctrineFixtures)安装一个包。

运行

php composer.phar update

  - Updating twig/twig (dev-master 39d94fa => v1.13.0)
    The package has modified files:
    M CHANGELOG
    M doc/filters/batch.test
    M doc/filters/index.rst
    M doc/filters/url_encode.rst
    M doc/functions/index.rst
    M doc/tags/index.rst
    M doc/tests/index.rst
    M lib/Twig/Autoloader.php
    M lib/Twig/Compiler.php
    M lib/Twig/CompilerInterface.php
-10 more files modified, choose "v" to view the full list

上一个开发人员似乎在vendor内部编辑了很多文件。

为了绕过这个问题,我尝试了

php composer.phar update <package_name>

但这似乎不起作用。如何从composer.json中更新/安装一个库?

安装doctrine/doctrine-fixtures-bundle版本2.1.*和最低稳定性@dev使用:

composer require doctrine/doctrine-fixtures-bundle:2.1.*@dev

然后只更新这个单独的包:

composer update doctrine/doctrine-fixtures-bundle

如果您只想更新几个软件包而不是全部,您可以列出它们:

php composer.phar update vendor/package:2.* vendor/package2:dev-master

你也可以使用通配符一次更新一堆包:

php composer.phar update vendor/*

正如@ZeroThe2nd评论的那样,ZSH用户可能需要将他们的供应商/*用引号括起来:

php composer.phar update "vendor/*"
  • ——prefer-source:安装source可用的软件包。
  • ——prefer-dist:当dist可用时安装包。
  • ——ignore-platform-reqs:忽略php, hhvm, lib-*ext-*要求,即使本地机器不满足这些要求也强制安装。参见platform配置选项。
  • ——dry-run:模拟命令而不做任何实际操作。
  • ——dev:安装require-dev中列出的包(这是默认行为)。
  • ——no-dev:跳过安装require-dev中列出的软件包。自动加载器的生成会跳过autoload-dev规则。
  • ——no-autoloader:跳过自动加载器的生成。
  • ——no-scripts:跳过composer.json中定义的脚本执行。
  • ——no-plugins :禁用插件。
  • ——no-progress:删除进度显示,这可能会扰乱一些不处理退格字符的终端或脚本。
  • ——optimize-autoloader (-o):将PSR-0/4自动加载转换为classmap以获得更快的自动加载器。特别建议在生产环境中这样做,但是可能需要一些时间来运行,所以目前默认情况下没有这样做。
  • ——lock:只更新锁文件哈希值以抑制锁文件过期的警告。
  • ——with-dependencies:将白名单包的所有依赖项也添加到白名单中。
  • ——Prefer -stable:选择稳定版本的依赖。
  • ——Prefer -lowest:选择最低版本的依赖。用于测试需求的最小版本,通常用于--prefer-stable

install, update和require的区别

假设如下场景:

composer.json

"parsecsv/php-parsecsv": "0.*"

作曲家。锁文件

  "name": "parsecsv/php-parsecsv",
            "version": "0.1.4",

最新版本是1.1.00.*的最新版本是0.3.2

install: composer install parsecsv/php-parsecsv

这将安装版本0.1.4在锁文件中指定

update: composer update parsecsv/php-parsecsv

这将更新包到0.3.2。composer.json的最高版本。composer.lock中的条目将被更新。

require: composer require parsecsv/php-parsecsv

这将更新或安装最新版本的1.1.0。您的composer.lock文件和composer.json文件也将被更新。

您可以使用以下命令更新任何模块及其依赖项

composer update vendor-name/module-name --with-dependencies

您基本上可以按照以下操作来安装新包。

php composer.phar require

则终端将要求您输入要搜索的包的名称。

$ Search for a package []: //Your package name here

然后终端将询问软件包的版本(如果您想要最新版本,请保留空白)

$ Enter the version constraint to require (or leave blank to use the latest version) []: //your version number here

然后按回车键。终端会要求安装另一个包,如果你不想安装另一个包,只要按回车键就可以了。

就用

composer require {package/packagename}

composer require phpmailer/phpmailer

如果包不在vendor文件夹中。Composer安装它,如果包存在,Composer将包更新到最新版本。

:

require安装或更新最新的软件包版本。如果你想更新一个包,只需使用update .

确保在您在composer中设置的版本限制内,将一个已经安装的包更新到最新版本。Json删除供应商的包,然后执行:

php composer.phar update vendor/package

因为您想要安装特定的软件包"我只需要为我的SF2发行版安装一个包(DoctrineFixtures)。"

php composer.phar require package/package-name:package-version

相关内容

  • 没有找到相关文章

最新更新