编程

让 Composer 建议将开发包放到 require-dev

741 2023-10-26 18:03:00

Composer 2.4 添加了一个新特性,使得如果包用作开发工具使,composer require 命令提示使用 --dev 标志安装该包。

当传入 --dev 标志时,该包在 composer.json 文件的 require-dev 区域中安装,其他 Composer 命令(比如 composer update,install, dump-autoload 等等)跳过可以可选地跳过的 require-dev 依赖。

Composer 安装时检测 composer.jsonkeywords 区域,如果它包含 dev,testingstatic analysis 等关键词,如果每传入 --dev,Composer 会提示用户使用 --dev 安装。

该提示包含为什么该软件包被判定为开发依赖:

The package you required is recommended to be placed in require-dev (because it is tagged as "testing") but you did not use --dev.

如果 Composer 以非交互环境(比如 CI 编译或者使用 --no-interaction 标志时)运行时,会跳过给特性。

如何让 Composer 在你的包中提示 --dev 标志

如果你发布了开发者工具(比如测试工具,数据修复工具和调试工具等),你可以使用这个特性,这样 Composer 会交互提示将其安装到 require-dev 区域,以免用户忘记使用 --dev 标记。为此,请在包的 composer.json 文件中将以下关键词添加到 keywords 区域。

Composer 使用的关键词用以将包推荐为开发依赖:

  • dev
  • testing
  • static analysis

请更新 composer.json 文件,并将以上的关键词之一添加到 keywords 区域:

  "name": "you/your-dev-tool",
+ "keywords": ["dev"],
  "type": "library",

关键词只需在默认分支中显示,不是所有分支和标签中都是必须的。

 

PHP