All Projects → ihahoo → wxapp-boilerplate

ihahoo / wxapp-boilerplate

Licence: MIT license
微信小程序开发脚手架 (ES6, Redux, Immutable-js, Async/await, Promise, Reselect, Babel, ESLint, Stylelint, Gulp ... )

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to wxapp-boilerplate

Alaweb
一套 Vue 代码,多端可用(H5、小程序、苹果App、安卓App、头条等)。系统含150+页面,200+组件(5端通用),30+元件(每个终端独立完成)
Stars: ✭ 837 (+2291.43%)
Mutual labels:  weapp, wxapp, wechat-app
Weapp
🐧 微信小程序组件和功能封装,基于微信Component自定义组件开发
Stars: ✭ 235 (+571.43%)
Mutual labels:  weapp, wxapp, wechat-app
Hapi Starter Kit
Hapi.js based REST boilerplate which uses latest ES7/ES8 features (async/await) with code coverage and follows best pratices
Stars: ✭ 103 (+194.29%)
Mutual labels:  eslint, async-await
React Itunes Search
🎵Simple web app for itunes search with React
Stars: ✭ 147 (+320%)
Mutual labels:  eslint, async-await
wxapplet-canvas-demo
用微信小程序的canvas做的一个小游戏
Stars: ✭ 72 (+105.71%)
Mutual labels:  wxapp, wechat-app
Weapp Ssha
企业官网 小程序 源码
Stars: ✭ 233 (+565.71%)
Mutual labels:  weapp, wechat-app
Wechat web devtools
微信开发者工具(微信小程序)linux完美支持
Stars: ✭ 2,664 (+7511.43%)
Mutual labels:  weapp, wxapp
etym
English Etymology application
Stars: ✭ 86 (+145.71%)
Mutual labels:  weapp, wechat-app
Wxapp Webpack Plugin
📦 微信小程序 webpack 插件
Stars: ✭ 185 (+428.57%)
Mutual labels:  weapp, wxapp
weapp wechat miniapp sdk
一个封装了微信小程序服务端接口的SDK
Stars: ✭ 102 (+191.43%)
Mutual labels:  weapp, wechat-app
springboot-wx
🎉微信小程序-基于SpringBoot的实现Maven聚合,分为core核心模块,service服务模块,gateway对外网关模块,目前已经实现Shrio鉴权jwt监控鉴权,为小程序提供统一规范接口,以及小程序配套后台.
Stars: ✭ 52 (+48.57%)
Mutual labels:  wxapp, wechat-app
sudoLite
一款轻巧、趣萌、界面精美,具备统计、排行(即将推出),开源、免费、无广告的数独小程序
Stars: ✭ 55 (+57.14%)
Mutual labels:  wxapp, wechat-app
Wxa Plugin Canvas
小程序海报组件-生成朋友圈分享海报并生成图片
Stars: ✭ 2,692 (+7591.43%)
Mutual labels:  weapp, wxapp
Node Express Mongodb Jwt Rest Api Skeleton
This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API). Demo of frontend in VueJS here: https://github.com/davellanedam/vue-skeleton-mvp
Stars: ✭ 603 (+1622.86%)
Mutual labels:  eslint, async-await
Nxdc Milktea
一套仿奈雪の茶小程序的前端模板
Stars: ✭ 198 (+465.71%)
Mutual labels:  weapp, wechat-app
create-react-redux-app
React boilerplate based on create-react-app
Stars: ✭ 49 (+40%)
Mutual labels:  immutable, eslint
weapp-redux
Unofficial Redux binding for weapp
Stars: ✭ 13 (-62.86%)
Mutual labels:  weapp, wechat-app
Dva Wxapp
微信小程序的dva集成
Stars: ✭ 183 (+422.86%)
Mutual labels:  weapp, wxapp
Leshare Shop Weapp
基于微信小程序的电商平台,采用原生框架开发
Stars: ✭ 183 (+422.86%)
Mutual labels:  weapp, wxapp
weapp-OpenRadio
A base music weapp named OpenRadio for wechat. Can use on weapp getting started.
Stars: ✭ 14 (-60%)
Mutual labels:  weapp, wxapp

wxapp-boilerplate 🗜🖖

微信小程序开发脚手架 (ES6, Redux, Immutable-js, Async/await, Promise, Reselect, Babel, ESLint, Stylelint, Gulp ... )

支持Yarn,所以npm的命令可以使用yarn的相关命令替换

安装

首先需要有 Node.js 环境.

$ git clone https://github.com/ihahoo/wxapp-boilerplate.git
$ npm install

启动开发环境

$ npm run dev

注:会自动监视 src/ 文件夹,有代码变动会自动生成到 dist/ 文件夹。请将微信的开发者工具的项目目录设置为 dist/ 文件夹,就会自动刷新调试界面。

如果在开发中,发现没有及时更新,可尝试停止并重新运行此命令,或者尝试在微信开发者工具中刷新一下。

构建发布用的文件

$ npm run build

会使用 uglify 对js代码压缩,也会调用不同的压缩工具对wxss, wxml, json 和图片进行压缩。

微信开发者工具新建项目

请将 项目目录 设置到你项目所在目录的 dist/ 目录下。因为最终构建的目标代码会发布到这里,如果还没有 dist/ 这个文件夹,你可以手动创建或者运行 npm run dev 后自动创建。

说明

开发方式

使用你喜欢的编辑器编写代码 <=> 微信官方的开发者工具预览调试和发布

注意

请在微信官方的开发者工具的 项目 下将 开启ES6转ES5 设置为关闭,这里使用 GulpBabel 进行转换。在开发目录 src/ 可使用 .xml 替代 .wxml.css 替代 .wxss,会通过构建工具自动转换到目标文件夹 dist/ 中。(主要为了编辑器对扩展名的识别,方便开发使用)

目录结构

  • src/ 开发目录
  • src/lib 引用的模块库目录,由于微信小程序不支持 node_modules 使用npm安装的库无法直接使用,这里放置了转换后的库。以下是整合的一些库,当然你可以根据自己喜欢重新整合。
  • src/lib/redux-act-reducer/ redux-act-reducer 是本人开发的创建redux action和reducer的工具。
  • src/lib/regenerator-runtime/ 使用async/await用到的库
  • src/lib/wx-app-redux/ 本人开发的类似于 react-redux 的Redux数据绑定工具。将Page() 下的 data 与redux绑定。
  • src/lib/immutable.js 从官方immutable-js生成的文件。
  • src/lib/redux-immutable.js 为了支持immutable,替换了redux下的 combineReducers
  • src/lib/redux-thunk.js 支持redux的异步通信
  • src/lib/redux.js 从官方redux生成的可直接调用的库。
  • reselect.js Reselect 是为了提高性能而用到的redux state选择工具。
  • src/pages/ 微信小程序的页面
  • src/utils/request.jswx.request 的一个封装,返回 Promise ,所以方便使用 async/await 方式调用,为了让一套request代码,可以方便的用到各个端(比如web,服务器渲染,或者app),所以抽象了一个封装,这样可以方便代码的重用,当然你可以根据自己需要选择不使用或者自行封装。具体使用参数请看这里:https://github.com/hahoocn/hahoorequest#usage
  • dist/src/ 下的文件通过 Gulp 构建工具转化生成的可让微信小程序运行环境解读的目标文件。

支持的语法

支持 ES6 相关语法,支持 Promise,支持 async/await,支持 importexport

async/await 使用注意

请在使用了 async/await 的页面顶部加入以下代码:

import regeneratorRuntime from '../../lib/regenerator-runtime/runtime-module';

关于代码规范的统一

使用 eslintstylelinteditorconfig 可以对编码进行规范,特别是多人合作情况下,使用统一规范很重要。所以请将代码编辑器增加对eslintstylelinteditorconfig 的插件和支持,在编码的同时,即可提示错误和警示。可以通过 .eslintrc 配置js规范的规则,通过.stylelintrc 配置样式表的规范规则,通过 .editorconfig 配置编辑器编码的一些规则。

关于Redux、Immutable-js等相关工具

Redux 做为管理数据流的工具,可以用到各种前端框架中。比如ReactVueReact Native等,当然微信小程序也可使用。Redux和Immutable-js在初步使用的时候,会觉得有点麻烦或难理解,不过对于数据流的管理或构建复杂的项目会更好,性能也不错。其实这里与微信小程序框架结合的Redux相关技术栈和我使用React下的Redux相关技术栈是一样的,所以可以方便代码的重用。在构建h5应用,小程序,pc软件,app等都可以用上Redux、Immutable-js等相关技术栈。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].