{"id":13462613,"url":"https://github.com/qiu8310/minapp","last_synced_at":"2025-05-15T18:02:10.853Z","repository":{"id":48018935,"uuid":"123388476","full_name":"qiu8310/minapp","owner":"qiu8310","description":"重新定义微信小程序的开发","archived":false,"fork":false,"pushed_at":"2022-12-07T17:25:42.000Z","size":2424,"stargazers_count":927,"open_issues_count":26,"forks_count":68,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-03-31T21:49:54.585Z","etag":null,"topics":["api","promises","typescript","vscode","wechat","wx-api"],"latest_commit_sha":null,"homepage":"https://qiu8310.github.io/minapp/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qiu8310.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-01T05:48:55.000Z","updated_at":"2025-03-21T06:50:00.000Z","dependencies_parsed_at":"2023-01-24T19:18:19.805Z","dependency_job_id":null,"html_url":"https://github.com/qiu8310/minapp","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiu8310%2Fminapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiu8310%2Fminapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiu8310%2Fminapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiu8310%2Fminapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qiu8310","download_url":"https://codeload.github.com/qiu8310/minapp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737788,"owners_count":20987721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","promises","typescript","vscode","wechat","wx-api"],"created_at":"2024-07-31T12:00:53.666Z","updated_at":"2025-04-07T22:09:51.077Z","avatar_url":"https://github.com/qiu8310.png","language":"TypeScript","funding_links":[],"categories":["Uncategorized","工具","TypeScript","UI模板"],"sub_categories":["Uncategorized","3、小程序模板"],"readme":"# minapp\n\n**重新定义微信小程序的开发**\n\n**[更新日志](./CHANGELOG.md)**\n\n**minapp 2.0.0 已经发布，新版本主要采用了 webpack 4，[v1.x升级到v2.x请查看](https://qiu8310.github.io/minapp/docs/doc-update-v1-to-v2.html)**\n\n\n## 介绍\n\n**minapp 是为开发微信小程序而打造的一整套提升开发体验的工具：**\n- 提供一个命令行工具 `@minapp/cli`，用它可以快速创建一个项目，并可以用 webpack 来构建生成的项目；\n- 提供一个开发框架 `@minapp/core`，此框架是完全兼容原生小程序代码的框架，支持使用 class 的方式来开发，支持代码自动补全，同时提供微信所有 api 的自动补全\n- 提供一个集成了 mobx 的框架 `@minapp/mobx`，此框架主要给 `@minapp/core` 注入了 mobx，可以让你轻松使用 mobx 来管理全局数据\n- 提供一个 vscode 插件 `minapp-vscode`，此插件主要是针对小程序的 `wxml` 模板语言，可以自动补全所有的组件、组件属性、组件属性值等等\n\n注意：使用 minapp 后，还是需要使用微信官方提供的\"微信开发者工具\"来测试\n\n## 使用\n\n1. 用 npm 安装命令行工具： `npm install -g @minapp/cli`\n2. 初始化项目：`minapp init \u003c你要创建项目的文件夹\u003e` (同时支持创建 js 和 ts 项目)\n3. 安装两个 vscode 插件：[minapp][vscode-minapp] 和 [dot-template][vscode-dot-template]（可选，但建议安装）\n\n## 特点\n\n* 完全兼容原生小程序，所有原生小程序代码可以直接迁移到 minapp 的环境中\n* 集成 webpack 和 webpack-dev-server，编译有保障\n* 可以选择使用 mobx，方便管理全局数据\n* 所有语言在 minapp 的环境中都能自动补全，开发体验超级棒（见下面的`功能概览`）\n* 支持数据双向绑定\n* setData 性能优化\n\n## 功能概览（在 vscode 编辑器下）\n\n### wx 所有接口都有智能的提醒，同时包括接口的参数，和返回值\n\n![wx接口示例](https://n1image.hjfile.cn/res7/2018/03/01/428c4297bb1f6b6cf335317f89bab237.gif)\n\n  **非 minapp 用户也可以安装 `@minapp/wx` 来获取此功能，参见[这里](https://qiu8310.github.io/minapp/docs/doc-how-to-use-wxp-in-other-project.html)**\n\n### 提供一个 promise 版的 wx 接口 wxp，和 wx 一样，只是它会将 wx 中所有需要 success/fail/complete 三个参数的函数 promise 化\n  - wxp 中也支持使用 success 回调\n  - wxp 给 Promise 添加了一个 finally 方法；如，你可以这样用 `wxp.getUserInfo().finally(() =\u003e { /* do something */ })`\n\n\n![wxp示例](https://n1image.hjfile.cn/res7/2018/03/01/a8ccc97ac7146b81e080daf8eb778b4d.gif)\n\n### 集成 mobx，可以非常方便的修改全局数据，并自动更新当前页面状态\n  - 注入 Store 只需要在 appify 函数中添加 Store 对象即可\n  - Page 和 Component 中都默认注入了 Store 对象，你可以使用 `this.store` 获取\n\n![mobx](https://n1image.hjfile.cn/res7/2018/03/01/beaf3616dc87b851156fe107e79deff9.gif)\n\n\n### wxml 模板语言支持语法高亮，组件智能提示，组件属性智能提示（需要安装 vscode 插件 [minapp][vscode-minapp]）\n\n欲了解更多此插件的功能详情，[点此查看](./packages/minapp-vscode)\n\n![wxml](https://n1image.hjfile.cn/res7/2018/03/01/13631761451ae134c6eb3ea2ed1a6a12.gif)\n\n### json 文件支持自动提示\n\n![json](https://n1image.hjfile.cn/res7/2018/03/01/ee0ec301194156469cfe5533a2008d04.gif)\n\n### 新建一个 page 文件夹时，自动生成相关文件（需要安装 vscode 插件 [dot-template][vscode-dot-template]）\n  - 自动为你创建相关的同名的文件，包括 js/json/wxml/scss，并且这些模板文件你可以随时在 .dtpl 文件夹下修改\n  - 自动将新建的 page 路径注入到 app.json 文件夹中\n\n![新建 Page 示例](https://n1image.hjfile.cn/res7/2018/03/01/8dc5a66a33857c2cfb16353727d15f41.gif)\n\n### 小程序 Page 中支持函数自动提示\n\n![Page 中的函数自动提示示例](https://n1image.hjfile.cn/res7/2018/03/01/18702b10498aee7ddc394eb04a703a43.gif)\n\n### 同理，新建组件文件夹时，也会创建相关的文件；同时组件中的生命周期函数也会自动提示\n\n![Component 示例](https://n1image.hjfile.cn/res7/2018/03/01/5ad639730bee6eea44d93a22edfc8921.gif)\n\n\n## 关于此仓库说明\n\n这不是一个项目，是有好几个项目组合而成的，用的是 [lerna](https://github.com/lerna/lerna) 开发工具，其它项目在 [packages 目录下](./packages/)，这里对其中的几个主要项目做个简要概述\n\n* [minapp-generator][minapp-generator]: 此模块负责解析微信官方文档，生成结构化的数据，供其它模块使用\n* [minapp-wx][minapp-wx]: 微信所有原生 api 的 TypeScript 定义，另外提供一个 promise 版的 wx 接口\n* [minapp-core][minapp-core]: 开发框架，需要依赖 minapp-wx\n* [minapp-mobx][minapp-mobx]: 集成 mobx 的开发框架，需要依赖 minapp-core\n* [minapp-cli][minapp-cli]: 提供给用户的命令行工具，并可以快速创建一个新项目\n* [minapp-vscode][minapp-vscode]: vscode 插件，为wxml提供语法高亮、标签与属性的自动补全\n\n## TODO\n\n* [ ] 小程序中的静态资源自动上传到 七牛 (完成我的 file-uploader 组件)\n* [ ] 实现类似于 vue 的功能，可以将所有文件写在一个页面上\n* [x] webpack 升级到 4.0\n* [ ] 写一个小程序的自动化测试框架\n* [x] 自定义组件支持智能提示(需要修改 minapp-vscode 插件)\n\n\n[vscode-minapp]: https://marketplace.visualstudio.com/items?itemName=qiu8310.minapp-vscode\n[vscode-dot-template]: https://marketplace.visualstudio.com/items?itemName=qiu8310.dot-template-vscode\n[minapp-generator]: https://github.com/wx-minapp/minapp-generator\n[minapp-wx]: https://github.com/wx-minapp/minapp-wx\n[minapp-core]: ./packages/minapp-core\n[minapp-mobx]: ./packages/minapp-mobx\n[minapp-wxml-parser]: ./packages/minapp-wxml-parser\n[minapp-cli]: ./packages/minapp-cli\n[minapp-example-ts]: ./packages/minapp-example-ts\n[minapp-example-js]: ./packages/minapp-example-js\n[minapp-vscode]: https://github.com/wx-minapp/minapp-vscode\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqiu8310%2Fminapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqiu8310%2Fminapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqiu8310%2Fminapp/lists"}