@edv4h/usketch-plugin-container

中文文档
0.3.23发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 2423
中文使用文档
文档目录3 节
  1. 使用量
  2. 可附加的子形状( A) createAttachablePlugin (中文(简体) )
  3. 注/限制

@edv4h/usketch-plugin-容器

运行时间 容器形状 - 形状: ShapeDefinition 声明a container 对象。 它为基于母体的容器机械工提供了一种 形状定义本身不能表达:

  • 自动随附 - 一个形状完全掉入一个装设的容器 container.autoAttach 获得它 parentId 设置( 移动时清除).
  • 安排 - 一个集装箱的 container.layout 将儿童安置在 附加/调试、调整大小和(非干)更新.
  • 同步排除 - 集装箱被拖走时,其子女(随行) 他们被排斥在断裂之外 以免他们焦躁不安 要求数 @edv4h/usketch-plugin-snap; 如果未安装 snap, 则禁用 .

选择分辨率 (“ 单击一个孩子, 选择孩子 ”) 并随行 ("擦擦父母,孩子跟着") 本土 以 tool-helpers编号 :tool-select 从同 container 旗帜 - 仅此插件 上面添加反应片段.

使用量

登记册 之后 抓图插件是这样的 snap:configure 听者准备好了:

import { createContainerPlugin } from "@edv4h/usketch-plugin-container";

const plugins = [
  // ...
  createSnapPlugin(),
  createContainerPlugin(),
];

以形状定义宣布容器(所有字段都接受) boolean | (data) => boolean 上游,所以一个单一类型可以改变每个 实例 :

import { stackLayout } from "@edv4h/usketch-plugin-container";

ctx.shapes.register("wireframe", {
  // ...render/hitTest/resize/createDefault...
  container: {
    enabled: (s) => s.meta?.component === "card", // only cards are containers
    selectableChildren: true,                     // children selectable individually
    autoAttach: true,                             // drop-inside attaches as child
    layout: stackLayout({ padding: 16, gap: 8 }), // arrange children vertically
  },
});

儿童是普通的外形,通过当地人参考容器 parentId。 。 。 .

可附加的子形状( A)createAttachablePlugin(中文(简体) )

这个 儿童方对应方而 container 选择一个 父目录 到持有 孩子们, attachable 选择形状为 儿童 紧紧跟随 任意 形状被扔在上——甚至一个非容器(硬纸条,卡片)。 用这个 用于邮票、徽章、反应针或手写注释部件。 因为 在普通选择工具( 无指针劫持) 上运行孩子 /调整大小/旋转.

这是一个 单独的插件 从 createContainerPlugin (登记人或 两者都一样),合用此地,因为它驱动相同 parentId 封闭 子系统 :

import { createAttachablePlugin } from "@edv4h/usketch-plugin-container";

const plugins = [
  // ...
  createAttachablePlugin(),
];

ctx.shapes.register("badge", {
  // ...render/hitTest/resize/createDefault...
  attachable: {
    toAny: (target) => target.type !== "connector", // eligible targets
    follow: true,                                    // follow the parent's move
    hitTest: "center",                               // "drop it on and it sticks"
  },
});
  • 自动随附 (这个插件):滴出时, parentId 设置到最前面 徽章下接受形状(每 hitTest 编号 : toAny页:1 没有什么.
  • 移动跟随 实值 本地语言 (单位:千美元)tool-helpers编号 :tool-select 读取 attachable.follow)——即使没有这个插件,它也是有效的. 见 ShapeDefinition.attachable 内 @edv4h/usketch-shared 为全API.

注/限制

  • z- 顺序/ 筑巢: 儿童被定位,但没有z命令 插件——视网膜依赖 zIndex。 。 。 .
  • 单身 excludeTargets数字 : snap:configure 持有一个 excludeTargets 上游; 如果设置了多个插件, 则最后写入获胜 。 只有这个插件是 预期会.
  • 旋转: 儿童随行/安排移动并调整规模;父母轮换 未传播给儿童.

版本与发布记录

@edv4h/usketch-plugin-container 共发布 24 个版本,首次发布于 2026/07/09;过去 12 个月发布了 24 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.23latest2026/11/103 天前
0.3.222026/11/103 天前
0.3.212026/11/067 天前
0.3.192026/11/0310 天前
0.3.182026/11/0211 天前
0.3.172026/10/2519 天前

关于 @edv4h/usketch-plugin-container 的常见问题

如何安装 @edv4h/usketch-plugin-container?

在项目目录运行 npm install @edv4h/usketch-plugin-container,或使用 pnpm add / yarn add / bun add。

@edv4h/usketch-plugin-container 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@edv4h/usketch-plugin-container 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@edv4h/usketch-plugin-container 可以商用吗?

@edv4h/usketch-plugin-container 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@edv4h/usketch-plugin-container 的下载量有多少?

根据 npm 官方下载统计,@edv4h/usketch-plugin-container 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,423 次,日均约 81 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@edv4h/usketch-plugin-container 还在维护吗?

最新版本 0.3.23 发布于 2026/11/10(3 天前);至今共发布 24 个版本,其中过去 12 个月发布了 24 个;首次发布于 2026/07/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。