SuperAPI AI 工具集

meteor-community-packages

编程与开发

查看项目

更新于 10-15 14:49

技能介绍

用途

该技能用于在 Meteor 的社区包目录中完成包的发现、比较、首次采用、配置与调试,也用于从社区包迁移到核心包。它把 Meteor 社区包页面当作经过整理的发现目录,但明确说明:列表收录并不使包成为 Meteor 核心的一部分,不把维护权转移给 Meteor 组织,也不保证兼容每一个 Meteor 3 版本。只有在检查包的归属、当前发布版本、支持的 Meteor 范围以及对应用行为的改变之后,才应选择某个包。

该技能负责包的发现、比较、首次采用以及 Meteor 核心文档中记录的包特定集成。它不替代方法、发布订阅、Mongo、账户、安全、测试、构建或部署等核心技能。

决策流程

  1. 定义缺失的能力以及必须保持不变的行为。区分“新采用”与“在 Meteor 升级过程中停止解析的包”;后者应路由到 migrate-to-meteor-3。
  2. 检查 .meteor/release、.meteor/packages、.meteor/versions、package.json 以及 npm 锁文件。包 API 遵循解析后的包版本,而不仅仅是 Meteor 发行版。
  3. 当请求匹配文档目录或已提升的包时,阅读 references/package-catalog.md。只打开所选包的本地指南,在回应前阅读其基线、选择规则和必需检查。然后查阅其链接的上游仓库,以获取超出 Meteor 维护指南的 API 或版本。
  4. 正确分类候选包:文档列出的社区包保留其指定维护者和独立发布周期;Meteor Community 下的包是社区维护,不是 Meteor 核心;提升的核心包(如 Meteor 3.1+ 的 roles)使用核心包名和 Meteor 文档。
  5. 比较行为,而不是功能标签。识别猴子补丁、改变的查询或删除语义、客户端持久化、重放、外部端点、数据库拓扑要求以及生产运行时影响。
  6. 从官方文档核实 Meteor 最低版本,从注册表或仓库核实包版本。如果文档未说明最低版本,应如实说明并检查当前发布版本,而不是推断支持。
  7. 通过包文档记录的生态安装。Atmosphere 包使用 meteor add,npm 包使用 meteor npm install。不要臆造版本约束。安装后,在 .meteor/versions 或 npm 锁文件中确认解析版本。对于 Meteor 3.6-beta.0 的交互式或基于 Git 的 Atmosphere 采用,阅读 package installation。在脚本中使用显式注册表名称;保留 npm 工作区选定的管理器。
  8. 应用所选包指南中每一项相关的必需检查。不要只询问项目路径就停止。如果文件不可用,应把确切的版本、安全、行为和测试检查列为必需的后续步骤。对于指南未覆盖的选项,应针对上游仓库核实解析版本,而不是从另一个发行版外推。
  9. 添加最小的代表性集成,并测试其包特定行为以及底层 Meteor 不变量。授权、验证、发布选择器、索引、事务设计、构建输出或部署架构应使用所属核心技能。

生态选择

当能力依赖 Meteor 包、客户端/服务器打包、Meteor 构建插件、包全局变量或 Meteor 约束求解器时,使用 Atmosphere 包。对于通用 JavaScript 库和为 npm 生态设计的包,使用 npm。一个 Meteor 应用可以同时使用两者。

Atmosphere 和 Packosphere 暴露包元数据。Packosphere 的维护信号有助于分诊,但不能替代检查源仓库、发布历史、未解决的兼容性问题、许可证和解析版本。

有用的检查命令:

meteor --version
meteor show <atmosphere-package>
meteor list
meteor npm view <npm-package> version

采用检查

对于每个选定的包,回应必须报告:

  • 为什么它比文档记录的替代方案更合适。
  • 谁维护它,以及它是社区维护还是核心。
  • 如何核实当前上游发布和解析的包版本,以及文档记录的 Meteor 边界。
  • 它改变了哪些应用语义。
  • 它暴露了哪些数据、端点或服务器能力。
  • 如何移除或回滚该集成。
  • 来自所选指南的具体聚焦测试,证明预期行为及其安全边界。

把包装器视为扩展,而不是 Meteor 安全模型的替代品。方法和发布辅助函数仍然需要服务器授权和参数验证。客户端持久化仍然需要最小权限的数据选择。外部方法桥接需要明确的暴露和认证审查。对于 Wormhole 或其他外部方法桥接,回应必须包含暴露前检查清单,涵盖方法清单、现有认证与授权、输入验证、速率限制、副作用、返回字段、凭据测试,以及未暴露方法保持不可达的证明。

路由

请求 所属技能
包在升级期间无法解析、构建或支持 Meteor 3 migrate-to-meteor-3
方法实现、验证、乐观 UI 或速率限制 meteor-methods
发布设计、授权或响应式数据语义 meteor-pubsub
集合选择器、索引、Change Streams 或 Mongo 行为 meteor-mongo-minimongo
账户与授权设计,包括角色如何保护服务器操作 meteor-accounts 和 meteor-security
集群拓扑或生产发布 meteor-deployment
发布或维护 Atmosphere 包 包创作工作流,不是本技能

反模式

  • 仅因为某个包出现在 Meteor 文档中就推荐它。
  • 把 Meteor Community 所有权当作 Meteor 核心支持。
  • 因为本技能支持所有 Meteor 3 发行版,就假设某个包也支持。
  • 不检查已安装包版本就复制最新 API。
  • 在选择数据模型之前同时添加两种替代方案,例如归档和软删除。
  • 让包装器的默认值悄悄削弱方法、发布或数据访问控制。
  • 把兼容性桥接作为新系统的默认架构。

参见

  • references/package-catalog.md
  • references/eval-cases.md