description字段必须用一句话精准说明包解决的具体问题,主语是包本身,避免空值、形容词堆砌和冗余信息,长度控制在120字符内,否则Packagist拒收、composer require失败。

description 字段写什么才不算空或无效
Composer 会把 description 当作包的“第一眼名片”,不是可有可无的注释。空字符串、纯空格、只写“A package”或“My awesome lib”都会被 Packagist 忽略,甚至影响搜索权重和自动文档生成。
实操建议:
- 用一句话说清「这个包解决什么具体问题」,主语是包本身,不是你或用户。比如:
"Provides PSR-14 event dispatching with lazy listener resolution",而不是"Helps you handle events easily" - 避免形容词堆砌(“lightweight, fast, modern…”),Packagist 不索引这些词,且没人信
- 不写版本号、PHP 要求、安装命令——这些属于
require、autoload或 README,description 不承担说明书功能 - 长度控制在 120 字符内,超长会被截断,且多数 IDE / CLI 工具只显示前 80 字左右
为什么 description 为空会导致 composer require 失败
它本身不会让 composer require 命令报错,但会触发连锁反应:Packagist 拒绝收录无 description 的包(除非是私有仓库),而 composer require vendor/name 默认走 Packagist 元数据。如果你本地测试时发现“Package not found”,八成是还没成功发布到 Packagist,根源常是 description 为空或格式不合法。
常见错误现象:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Packagist 页面显示 “This package is not available on Packagist.org”,点进去提示 “Missing description”
-
composer validate不报错,但composer require找不到包 —— 因为 Packagist 没同步元数据 - 手动提交到 Packagist 后卡在 “Processing…” 状态,后台日志实际是 description 校验失败
description 和 README.md 内容能一样吗
能,但不该。README 是给人看的完整说明,description 是给机器和扫描器读的摘要。重复粘贴 README 第一行(比如 "A Laravel package for sending SMS")看似省事,实则浪费信息密度。
关键差异:
- README 可以讲背景、动机、5 种用法;
description必须聚焦「能力边界」:支持什么协议?兼容哪些框架?处理哪类输入? - README 里写
"Works with Laravel 9+"没问题,但description里写这个就冗余——框架兼容性应放在require或conflict里声明 - 如果包提供 CLI 命令,
description中提一句"Includes bin/sms-send for command-line usage"比泛泛而谈更有用
私有仓库要不要认真写 description
要,而且更得写准。私有包不走 Packagist,但 composer show、IDE 的包补全、内部文档生成工具(如 Satis 或 Private Packagist)都依赖它。写模糊等于主动放弃可发现性。
实操注意点:
- 避免内部代号或项目名,比如
"Used in Project-X backend"—— 新同事根本不知道 Project-X 是啥 - 如果是公司级工具包,强调约束条件:例如
"Auth middleware enforcing RBAC via our internal IAM service",比"Authentication helpers"明确十倍 - 别用占位符,像
"TODO: write real description"或"[package name] does things",CI 流程里可能被composer validate --strict拦住

















