barrel-export

支持自动生成/优化/修复/检查 index 文件,确保所有 index 文件(index.ts / index.js)都遵循桶导出规范。核心原则:所有 index 文件都必须遵循桶导出规范。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "barrel-export" with this command: npx skills add forge-town/skills/forge-town-skills-barrel-export

桶导出操作工具

任务目标

本 Skill 用于自动生成、优化、修复和检查桶导出文件,确保所有 index 文件都遵循统一的规范:

  • 核心原则:所有 index 文件(index.ts / index.js)都必须遵循桶导出规范
  • 自动生成符合规范的 index.ts 文件
  • 修复不符合规范的导出
  • 检查导出规范并生成报告

触发条件

当用户提出以下需求时触发本 Skill:

核心原则:所有 index 文件(index.ts / index.js)都必须遵循桶导出规范。

场景 1:自动生成/优化/修复桶导出文件

  • "生成桶导出"
  • "优化桶导出"
  • "修复桶导出"
  • "修复 index.ts"
  • "生成 index.ts"
  • "更新桶导出"

场景 2:检查导出规范

  • "检查导出是否符合规范"
  • "检查 index.ts"
  • "验证桶导出"
  • "检查导出文件"

操作步骤

场景 1:自动生成/优化/修复桶导出文件

步骤 1:确认目标目录

默认锁定当前目录(.)作为操作对象。如果用户指定了目录,则使用指定目录。

步骤 2:扫描当前目录文件

使用系统命令扫描当前目录下的所有文件:

# 列出所有文件
ls -1

# 或扫描特定扩展名
ls -1 *.ts *.tsx *.js *.jsx 2>/dev/null

识别合法的源文件类型:

  • .ts(TypeScript)
  • .tsx(TypeScript + JSX)
  • .js(JavaScript)
  • .jsx(JavaScript + JSX)

步骤 3:应用过滤规则

排除以下文件类型:

  • index.ts / index.js(桶导出文件本身)
  • *.test.*(测试文件,如 Button.test.tsx
  • *.spec.*(规格文件,如 format.spec.ts
  • *.stories.*(Storybook 文件,如 Button.stories.tsx
  • *.d.ts(声明文件,如 global.d.ts

步骤 4:应用 _store 特殊规则

判断当前目录是否为 _store 目录:

  • 如果是 _store 目录:只导出 store.ts/store.jsprovider.ts/provider.js
  • 如果是其他目录:导出所有合法文件

步骤 5:生成导出语句

为每个合法模块生成导出语句:

统一格式

export * from './模块名';

要求

  • 使用 export * from 语法
  • 使用相对路径 ./
  • 按字母顺序排序
  • 保持文件名大小写与实际文件一致

步骤 6:写入或更新 index.ts

如果 index.ts 不存在: 创建新文件,写入生成的导出语句

如果 index.ts 已存在

  1. 读取现有 index.ts 内容
  2. 对比现有导出和新生成的导出
  3. 如果不一致,更新文件

步骤 7:验证结果

检查以下内容:

  • ✅ 所有合法模块已导出
  • ✅ 无效/重复导出已删除
  • _store 特殊规则已应用(如适用)
  • ✅ 导出格式统一且按字母排序
  • ✅ 文件名大小写与实际文件一致
  • ✅ 无"找不到模块"错误

场景 2:检查导出规范

步骤 1:确认目标目录

与用户确认要检查的目录路径。如果未指定,默认使用当前目录(.)。

步骤 2:检查 index.ts 是否存在

使用系统命令检查目标目录下是否存在 index.ts 文件:

ls -la index.ts
  • 如果不存在:报告错误,建议先生成 index.ts
  • 如果存在:继续执行后续检查

步骤 3:读取并解析 index.ts

使用 read_file 工具读取 index.ts 的完整内容,解析每一行导出语句。

步骤 4:扫描目录文件

使用系统命令扫描当前目录下的所有文件:

ls -1 *.ts *.tsx *.js *.jsx 2>/dev/null

识别合法的源文件类型:

  • .ts(TypeScript)
  • .tsx(TypeScript + JSX)
  • .js(JavaScript)
  • .jsx(JavaScript + JSX)

步骤 5:执行核心检查项

执行以下检查:

检查项 1:文件存在性检查

  • 检查 index.ts 文件是否存在

检查项 2:导出格式规范检查

  • 检查所有导出语句是否使用 export * from 格式
  • 检查是否有 export defaultexport { } 等不规范格式

检查项 3:排序检查

  • 检查导出语句是否按模块名字母顺序排序

检查项 4:重复导出检查

  • 检查是否存在重复的模块导出

检查项 5:导出有效性检查

  • 检查每个导出的模块是否在目录中实际存在
  • 检查文件名大小写是否匹配

检查项 6:排除规则检查

  • 检查是否导出了应排除的文件:
    • *.test.*(测试文件)
    • *.spec.*(规格文件)
    • *.stories.*(Storybook 文件)
    • *.d.ts(声明文件)

检查项 7:_store 特殊规则检查

  • 如果目录名为 _store,检查是否只导出 storeprovider

步骤 6:生成检查报告

按照以下格式生成详细的检查报告:

=== 桶导出规范检查报告 ===

📁 检查目录: <目录路径>

📊 统计信息
- 导出模块总数: X
- 问题总数: X

✅ 检查通过: <数量>
❌ 检查失败: <数量>

---

详细检查结果

1. 文件存在性检查
   ✅ 通过 / ❌ 失败
   说明: <详细说明>

2. 导出格式规范检查
   ✅ 通过 / ❌ 失败
   说明: <详细说明>
   问题列表: <如有问题,列出所有问题>

...

---

💡 修复建议
<如有问题,提供修复建议>

🎯 总体评价
✅ 完全符合规范 / ⚠️ 部分符合规范 / ❌ 不符合规范

步骤 7:提供修复建议

对于每个失败的检查项,提供具体的修复建议。

注意事项

核心原则

所有 index 文件(index.ts / index.js)都必须遵循桶导出规范

无论目录类型、文件数量、项目规模如何,只要存在 index 文件,就必须:

  1. 使用统一格式export * from './模块名';
  2. 按字母顺序排序:导出语句按模块名字母顺序排列
  3. 排除不应导出的文件:test、spec、stories、d.ts 等文件不导出
  4. 遵循 _store 特殊规则:如果是 _store 目录,只导出 storeprovider
  5. 确保导出有效性:所有导出的模块必须实际存在

使用原则

  • 桶导出文件仅负责导出,不包含任何业务逻辑
  • 支持目录路径和文件路径输入,文件路径会自动定位到所在目录
  • _store 目录的桶导出只导出 storeprovider,其他文件不应暴露
  • 文档前后描述必须保持一致,避免歧义
  • 强制遵循规范:所有 index 文件都必须符合桶导出规范,无例外

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

zod-env-integration

No summary provided by upstream source.

Repository SourceNeeds Review
General

page-best-practice

No summary provided by upstream source.

Repository SourceNeeds Review
General

svg-icon-best-practice

No summary provided by upstream source.

Repository SourceNeeds Review
General

store-best-practice

No summary provided by upstream source.

Repository SourceNeeds Review