Babel 插件在线测试器 - 开发并验证自定义插件
编写 Babel 插件代码,输入源代码,实时查看转换后的结果,加速插件开发。
UD5工具箱
resolveId(模块路径解析)、load(加载模块内容)、transform(代码转换,最常用)、buildStart、buildEnd、generateBundle 等。插件通过返回特定的值或调用 this 上下文方法来影响构建结果。
transform(code, id) 是使用最频繁的 Hook。/src/utils.js)code 和可选的 map(sourcemap)的对象;② 仅返回转换后的字符串;③ null/undefined 表示不进行转换。如果返回的 code 与原代码相同,Rollup 会跳过该模块的后续处理以优化性能。异步处理可返回 Promise。
this.parse() 获取 AST、this.resolve() 解析模块路径、this.warn() 和 this.error() 进行诊断。这使得 Rollup 插件在代码转换场景(如 Babel、Terser)和资源处理场景(如处理 JSON、CSS)中都能胜任。
transform Hook 中,可以通过 this.parse(code, options) 将源代码解析为 ESTree 兼容的 AST。这依赖 Rollup 内置的 Acorn 解析器。获取 AST 后,可以使用工具如 estree-walker(Rollup 内置提供)遍历和修改 AST 节点,实现更精确的代码转换——比如替换特定函数调用、注入代码片段、分析依赖关系等。修改后的 AST 需要通过代码生成器转回字符串,通常配合 magic-string 库使用以避免破坏原始代码结构。
this.warn() 输出调试信息到构建日志console.log 在 Node.js 环境中查看中间状态name 属性便于在日志中识别--watch 模式实时观察变更效果rollup.rollup() API 进行自动化测试resolveId(source, importer) 负责模块路径解析——将 import 语句中的说明符(如 'lodash' 或 './utils')解析为绝对路径或虚拟 ID。可以返回 false 表示该模块应被视为外部依赖。load(id) 负责加载模块内容——根据解析后的 ID 返回源代码字符串。适合处理虚拟模块(内存中的文件)、从网络加载资源、或对特定文件类型进行预处理。resolveId 识别特殊路径前缀(如 virtual:),load 返回对应的虚拟内容。这是实现虚拟文件系统的标准模式。
rollup.browser.js)。它创建一个虚拟文件系统,将您输入的源代码映射为虚拟模块 entry.js,然后应用您编写的插件进行构建。构建结果通过 bundle.generate() 生成并展示。bundle.write()(需要 Node.js 文件系统);部分依赖 Node.js 内置模块的插件无法运行;大型构建可能受浏览器内存限制。对于大多数 transform 类插件的测试,本沙盒完全够用。
编写 Babel 插件代码,输入源代码,实时查看转换后的结果,加速插件开发。
在线Flexbox布局可视化生成器,直观调整主轴、交叉轴对齐、换行等属性,实时显示效果并输出CSS。
粘贴 Mustache 模板与数据 JSON,所见即所得地渲染输出,支持节段和反转节段。
在隔离的模拟环境中输入 SQLi 载荷,展示注入前后 SQL 语句变化,纯粹用于教学。
请求USB设备并列出接口,发送和接收数据,适用于调试兼容WebUSB的微控制器。
编写 lit-html 模板和数据,即时渲染结果,帮助学习 Lit 框架。
填写标题、文本和URL,触发系统级分享菜单,测试Web Share API功能。
可视化CSS box-shadow生成工具,拖拽调整阴影偏移、模糊、扩散、颜色,实时预览并生成代码。
使用新的Sanitizer API清理可能存在XSS风险的HTML字符串,并安全插入DOM。
加载音频流并通过 BiquadFilterNode 应用不同类型的滤波,实时调节频率和 Q 值。
为麦克风输入实时添加大厅混响和回声效果,简易网页K歌体验。
立即播放麦克风输入的声音,检验麦克风是否工作。
填入Payload及密钥,选择HS256/RS256算法生成JWT,并验证已签发Token的签名与过期时间。
输入 PlantUML 文本,编码为可嵌入图片的 URL 或解码已有的 PlantUML 链接查看源码。
搜索附近的蓝牙低功耗(BLE)设备,并显示设备名称和ID,需用户授权。
网页全屏彩色灯光,随麦克风捕捉的音量跳动,制造派对或直播氛围。
导入 Voiceflow 项目文件,在浏览器中模拟语音对话流程,调试交互逻辑。
在支持手部追踪的 XR 设备上,展示裸手交互的 VR/AR 体验。
从麦克风采集声音,用Web Audio实时改变音高、加速、加回声或机器人效果。
随机提供一句引人入胜的故事开头,帮助作家克服空白页。
在线XML格式化工具,支持XML缩进美化、语法高亮、树形结构查看及格式验证,完全在浏览器中处理。
展示 WebGPU 的网格和任务着色器如何代替传统顶点处理管线。
调用麦克风,以多种样式(波形、频谱、圆环音量)实时显示输入声音。
解析JSON Web Token,显示Header和Payload内容及签名算法,不验证签名,方便开发调试。
观察目标节点的添加、删除、属性变更,日志可视化展示,调试动态DOM的利器。
展示如何用默认策略将字符串转换为TrustedHTML,并观察禁止直接赋值的安全限制。
掷五个虚拟骰子,自动分类计算十六条得分项并高亮最佳填充策略,辅助桌游。
基于Canvas的在线绘图工具,提供画笔、橡皮擦、颜色选择、撤回等功能,自由涂鸦并保存作品。
在线JSON格式化与验证工具,支持JSON压缩美化、语法高亮、错误定位,浏览器本地处理保障数据安全。
选择数据类型(Article, Product 等)并填写属性,自动生成对应的 JSON-LD 结构化数据代码。