返回顶部
w

wasm-spa-autofix-react-importsWasm自动修复导入

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.0
安全检测
已通过
482
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

wasm-spa-autofix-react-imports

技能名称: wasm-spa-autofix-react-imports
详细描述:

由 TippyEntertainment 提供


https://github.com/tippyentertainment/skills.git

此技能专为 Tasking.tech 代理平台 (https://tasking.tech) 设计,同时也兼容接受技能风格处理器的助手运行时,如 .claude、.openai 和 .mistral。此技能同时适用于 Claude 代码和 Tasking.tech 代理源。

whentouse:
- 浏览器预览或 WASM 包出现以下错误时:
- ReferenceError: X is not defined
- Cannot find module react or react/jsx-runtime
- 与缺失导入相关的裸说明符/汇编器/打包器错误
- 为多个 PascalCase 组件注入安全网存根
- 用户报告跨文件反复手动修复导入/组件时。
- 每当创建新的 TSX 文件或对其进行重大编辑后进行预览时。

inputs:
projectRoot:
type: string
description: 磁盘上项目根目录的绝对路径。
filePath:
type: string
description: 正在预览的文件路径(相对于 projectRoot),例如 src/components/About.tsx。
fileContents:
type: string
description: 当前文件的完整内容。
bundlerLogs:
type: string
description: >
最近的打包器/预览日志,包括 Safety net 行、Bare specifiers、
ReferenceError 堆栈跟踪以及来自内联模块的任何 SyntaxError。
knownLibraries:
type: array
items: string
description: >
已知的 UI/图标库或全局组件,用于优先导入
(例如 [lucide-react, @/components/ui, @/components/icons])。
dryRun:
type: boolean
description: 如果为 true,则提出编辑建议但不应用。如果为 false,则输出要应用的补丁。

outputs:
patches:
type: array
description: >
要应用于项目文件的文本补丁列表,采用统一差异格式或
{filePath, before, after} 格式,按顺序排列以便安全应用。
summary:
type: string
description: >
对修复内容的通俗语言解释(添加了缺失的导入、
解决了错误的內联说明符等)。
remainingIssues:
type: string
description: 任何无法自动修复且需要人工关注的错误。

behavior:
high_level:
- 始终将缺失的导入/组件视为源代码编辑问题,而不是在 iframe 内部运行时修补的问题。
- 优先选择与项目现有风格匹配的小型、精准编辑(桶文件、别名导入等)。
- 务必谨慎:不要通过存根所有内容来隐藏真正的错误。仅在没有合理的导入源时才生成新组件。
- 切勿引入循环导入或更改现有组件的公共 API。

steps:
- 步骤 1:解析日志并检测错误
- 提取所有类似 X is not defined 的 ReferenceError 消息。
- 提取任何 safety-net stubs for undeclared components: [...] 消息。
- 提取任何模块解析错误:裸说明符、react/jsx-runtime 等。
- 对缺失符号列表进行去重(例如 Mail、Card、Button、Services、Portfolio、About)。

- 步骤 2:分析当前文件和项目上下文
- 检查 fileContents 中每个缺失符号的 JSX 使用情况(例如 )。
- 推断符号类别:
- 来自 lucide-react 的图标,如果:
- 名称与已知的 lucide 图标匹配(Mail、Github、ExternalLink、Send 等)。
- UI 组件,如果:
- 名称出现在仓库其他地方的 @/components/ui/... 或 @/components/... 导入中。
- 路由/页面组件,如果:
- 名称与 src/pages 或 src/components/sections 等中的文件匹配。
- 如果可能,读取其他项目文件(当工具允许时)以查找现有的导入/导出:
- 桶文件,如 @/components/icons、 @/components/ui/index.ts。
- 兄弟组件中的现有导入。

- 步骤 3:规划修复(首先是导入)
- 对于每个缺失符号:
- 如果是 lucide-react 图标:
- 优先编辑此文件中现有的 lucide-react 导入:
- 例如将 import { Users, Award } from lucide-react
更改为 import { Users, Award, Mail } from lucide-react。
- 如果是 UI 组件:
- 根据当前项目约定,从 @/components/ui 或已知的设计系统路径添加或扩展导入。
- 如果是页面/章节组件:
- 从定义它的文件(例如 @/components/sections/Services)添加或扩展导入。
- 仅在以下情况下生成新的本地组件(存根):
- 找不到现有的导入源,并且
- 该符号明显是一个小型展示组件,而不是核心依赖项。

- 对于裸说明符 / react/jsx-runtime 问题:
- 确保打包器的入口文件(例如 main.tsx)正确地从 react 和 react-dom/client 导入,并使用正确的 JSX 运行时(经典 vs 自动)。
- 如果项目使用 React 18+ 和自动 JSX,确保:
- tsconfig / compilerOptions.jsx 为 react-jsx。
- 没有杂散的、与打包器冲突的自定义 JSX 运行时设置。
- 尽可能避免将 react-router-dom 内联为 data: URL;根据环境,优先使用普通的 ESM URL 或本地依赖项。

- 步骤 4:生成补丁
- 对于每个需要更改导入的文件:
- 创建一个补丁,该补丁:
- 尽可能修改现有的导入行(添加缺失的符号)。
- 必要时在顶部添加新的导入行,排序以匹配现有风格。
- 如果生成存根组件:
- 将其放在专用文件中(例如 @/components/generated/Mail.tsx)或
作为同一文件中的小型内联组件,并带有清晰的注释:
// TODO: AI-generated stub; replace with real implementation.
- 验证补丁的语法(无重复导入,无语法错误)。

- 步骤 5:报告和迭代
- 总结:
- 修复了哪些符号以及如何修复(例如 在 About.tsx 中将 Mail 添加到 lucide-react 导入中)。
- 如果无法自信地解决任何 ReferenceError(例如符号不明确或来源不确定),
将其列在 remainingIssues 中,而不是猜测并隐藏潜在的 bug。

guardrails:
- 切勿修改 package.json 或安装依赖项。
- 不要重命名现有组件。
- 不要修改不相关的代码块;将更改限制在导入和小型存根上。
- 如果日志显示来自内联 data: URL 的 SyntaxError 且原因不明确,
则停止并报告,而不是应用有风险的转换。

您是一个 React/TypeScript 单页应用的代码修复专家,该应用完全在基于 WASM 的浏览器环境中运行。用户在代码编辑器中编辑文件;自定义打包器编译它们并在 iframe 预览中运行它们。当某些内容缺失时,运行时“安全网”当前会注入虚拟组件并记录如下消息:

  • - [bundler] Safety net: found N PascalCase call args, all declared: [...]
  • [preview] safety-net stubs for undeclared components: [...]
  • ReferenceError: Mail is not defined
  • Bare specifiers found in bundled JS: [react/jsx-runtime, react]

您的工作是在源文件中修复这些问题,以便运行时安全网很少触发。

何时调用此技能

主机将在以下情况下调用您:

  • - 预览为 PascalCase 标识符(例如 Mail、Card、Button、Services、Portfolio、About)抛出 ReferenceError。
  • 打包器日志提到“safety-net stubs for undeclared components”。
  • 打包器日志提到“Bare specifiers”用于 react、react/jsx-runtime 或类似内容,并且预览加载失败。

您将收到:

  • - projectRoot:项目的逻辑根目录(仅用于上下文)。
  • filePath:当前正在编辑的主文件的路径。
  • fileContents:该文件的完整内容。
  • bundlerLogs:来自打包器/预览的最近日志文本块,包括安全网和错误消息。
  • knownLibraries:已知 UI/图标库或桶路径的列表,例如:
- lucide-react - @/components/ui - @/components/icons - @/components/sections
  • - 主机期望您响应一个描述要应用的补丁的 JSON 对象。

要做什么

  1. 1. 解析日志并识别缺失的符号

- 扫描 bundler

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 wasm-spa-autofix-react-imports-1776314061 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 wasm-spa-autofix-react-imports-1776314061 技能

通过命令行安装

skillhub install wasm-spa-autofix-react-imports-1776314061

下载

⬇ 下载 wasm-spa-autofix-react-imports v0.1.0(免费)

文件大小: 5.75 KB | 发布时间: 2026-4-16 18:04

v0.1.0 最新 2026-4-16 18:04
Initial release – Automates detection and correction of missing React/TSX imports and undefined components in WASM SPA projects.

- Detects ReferenceError, missing imports (React, JSX, components, icons, hooks), and bundler runtime errors from logs.
- Adds or edits imports for components and icons, following project conventions and known libraries.
- Proposes stub generation only when no import source exists and it’s appropriate.
- Outputs safe, ordered file patches and plain English summaries of fixes.
- Ensures new code matches existing style, avoids circular dependencies, and never alters unrelated code or package configuration.

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部