[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2ex7axfl6jy8r":3},{"code":4,"message":5,"data":6,"timestamp":36},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":32,"homepage":33,"updated_at":34,"history":35},"open-wxa\u002Fwxa-runner",18,"在浏览器中用微信官方基础库运行小程序，支持 Chrome DevTools 调试与 Playwright E2E 测试","TypeScript",583,79,52,11,[],"在普通浏览器里用微信官方基础库运行小程序编译产物，便于本地调试和 Playwright 端到端测试。","如果你的小程序调试和测试目前离不开微信开发者工具，wxa-runner 值得花半小时试一下。它把编译后的小程序放进普通浏览器，运行的是微信官方基础库，所以你在 Chrome 里看到的页面，和 Playwright 驱动的页面，都是接近真机的那种运行方式。\n\n## 解决什么问题\n\n开发者想点开一个页面、打断点、看失败的请求，再把同一套流程放进 CI。现在通常要么开微信开发者工具、用远程控制方式做自动化，要么用 H5 重新实现，由框架自己渲染组件。前者要求机器上装着桌面工具，后者可能把渲染差异藏起来。wxa-runner 换掉了预览这一步：把编译产物目录（例如 `dist\u002Fdev\u002Fmp-weixin`，或 Taro、uni-app 的构建输出）指给它，打开 localhost，小程序就在 Chrome 里跑起来。调试改用 Chrome DevTools，同一个运行中的应用可以交给 Playwright 无头执行，在 Linux CI 上也不需要装开发者工具。\n\n## 有什么不同\n\n机制本身就是卖点：渲染、组件、`setData` 和生命周期由微信官方基础库驱动，而不是由框架重新实现。当问题出在组件的真实行为或生命周期时序上时，这一点有实际意义，H5 替代方案可能把这类问题掩盖掉。调试也变成普通的浏览器工作：断点、网络面板、DOM 查看，保存后热更新。`setup` 可以在不改业务代码的前提下预置登录态、mock 原生 API、拦截 `wx.request`，这省掉了测试带登录流程时最麻烦的前置条件。\n\n代价是范围有限。README 明确说不替代开发者工具：预览、上传、真机调试仍然要用开发者工具。文档还给出了一种借用开发者工具登录态的办法，用于拿真实 `code` 和手机号、调用服务市场或使用插件页面，这说明这些流程并非完全独立。应该把它当成更快的本地循环和 CI 测试工具，而不是官方工具链的完整替代。\n\n## 谁值得试\n\n适合已经有小程序构建产物（原生、Taro 或 uni-app）、想在 CI 里跑 Playwright 端到端测试的团队，尤其是在 Linux 上装开发者工具不方便的场景。也适合更习惯用 Chrome DevTools 打断点、看网络请求的开发者，以及需要在测试里预置登录态或 mock API 的人。\n\n主要需要预览、上传和真机调试的人不适合；这些仍是开发者工具的工作。指望它作为完整模拟器支撑发布流程的团队，会遇到定位上的限制，而不是某个功能缺失。\n\n## 使用条件与边界\n\n你需要一份编译好的小程序产物目录、运行 `npx` 的 Node 环境，以及项目依赖的微信基础库和编译器。文档把安装、基础库与编译器、以及登录态和 API mock 的 setup 分开讲，第一次跑之前要留出配置时间。需要真实 `code`、手机号，或涉及服务市场和插件页面的流程，要用开发者工具登录态的办法，这类测试因此依赖一台装有开发者工具的环境。\n\n内置的 `wxa-baselib` 是腾讯版权的微信官方代码，不适用本项目的 MIT 协议，二次分发或嵌入前要确认这个许可边界。日常维护意味着跟随基础库和编译器版本变化；README 没有给出明确的兼容策略。\n\n## HotRepo 点评\n\nHotRepo 从 2026-10-24 开始记录这个仓库，它在 2026-10-25 以 583 总星数出现在 TypeScript 新项目榜（不是总榜）第 18 名。可比的每日榜单历史不足，仅凭这两个有日期的样本还判断不了热度能否持续。采用前建议对照[功能与限制](https:\u002F\u002Fopen-wxa.github.io\u002Fwxa-runner\u002Ffeatures)，看你依赖的 API 是否在支持范围内，因为基础库方案决定了它在哪些地方能替代开发者工具、哪些地方不能。",{"slug":19,"name":20},"developer-tools","开发工具",[22,23,24,25,26,27,28,29,30,31],"e2e-testing","mini-program","miniprogram","playwright","simulator","taro","uni-app","weapp","wechat","wechat-miniprogram","MIT","https:\u002F\u002Fopen-wxa.github.io\u002Fwxa-runner\u002F","2026-10-25T03:10:15Z",[],1792906390]