磨刀不误砍柴工,纯用微信小程序官方IDE做为开发工具 …… 不香,本篇文章和同窗们一块儿搭建小程序开发环境,包含eslint
代码自动格式化,git
代码管理,云开发环境配置(开发环境 + 生产环境),vscode插件推荐html
代码规范和错误检查工具,配合开发工具,实现代码自动格式化、修复格式前端
小程序中推荐使用eslint-config-wxapp配置项,本身调了挺久的适合小程序的代码风格 ~ 固然,适合本身的才是最好的,能够自行写rules覆盖node
# 初始化npm文件,package.json,-y 表示所有选择yes npm默认配置 (能够本身执行npm init,就只带 -y的含义了) npm init -y #安装eslint配置和eslint,-D (--save-dev)表明所安装的为开发环境依赖, -S (--save)表明所安装的为代码依赖 npm i eslint-config-wxapp eslint -D 复制代码
在项目根目录新建.eslintrc
,在文件中写入如下内容ios
{ "extends": "eslint-config-wxapp", "rules": { } } // rules中能够加入自定义配置去覆盖默认配置 复制代码
ESLint
,用于代码自动格式化修复"editor.codeActionsOnSave": { "source.fixAll.eslint": true } 复制代码
至此,实现了代码校验,具体能够本身测试,相信大部分看这篇文章的新手很少,更多的广度能够根据关键字搜索学习 ~git
git的学习和github的使用,是每一个工程师必备的技能,学习资料不少,在这里推荐:github
正式开发,服务端都推荐有两个以上的环境,避免有用户在生产环境使用的时候,须要开发调试,更符合开发流程算法
// 全局的app.js中加入 initEnv() { const envVersion = __wxConfig.envVersion // 实如今体验版和正式版使用生产环境,开发阶段使用开发环境 // 云数据库 + 云函数 const env = envVersion === 'develop' ? 'dev' : 'prod' // ['develop', 'trial', 'release'] wx.cloud.init({ env, traceUser: true }) this.store.env = env }, onLaunch() { this.initEnv() }, 复制代码
写好的项目的目录结构以下,稍做解析,后面章节详细分析数据库
├── README.md ├── cloudfunctions # 云开发_云函数目录 | ├── model_auto_sign_trigger # 自动签到定时触发器, 实现了3个本身的帐号自动签到刷排行榜 | | ├── config.json | | ├── index.js | | └── package.json | ├── model_book_changeBook # 改变单词书 | | ├── config.json | | ├── index.js | | ├── package-lock.json | | └── package.json | ├── model_userWords_clear # 清除用户生词 | | ├── config.json | | ├── index.js | | └── package.json | ├── model_userWords_get # 获取用户生词 | | ├── config.json | | ├── index.js | | └── package.json | └── model_user_getInfo # 获取用户信息 | ├── config.json | ├── index.js | ├── package-lock.json | └── package.json ├── db # 数据整理的脚本 | ├── old(1.0的脚本和单词) | | ├── data | | ├── db | | ├── user.json | | ├── userWord.json | | ├── v1OldDataBaseBack | | ├── words.json | | └── words2dbFile.js | ├── pk_book_v1.json | ├── pk_book_v2.json | ├── pk_book_v2_add.json | ├── pk_user.json | ├── pk_userWord.json | ├── script | | ├── data | | ├── db | | └── words2dbFile.js | ├── userWord_transform.js | └── user_transform.js ├── design # 设计稿文件 | ├── MILanProVF-Medium.ttf | ├── home-bg.jpg | ├── static | | ├── bg1.png | | ├── bg10.png | | ├── bg11.png | | ├── bg2.png | | ├── bg3.png | | ├── bg4.png | | ├── bg5.png | | ├── bg6.png | | ├── bg7.png | | ├── bg8.png | | └── bg9.png | └── words-pk-re.sketch # 设计稿 ├── docs # 项目文档 | └── ... ├── miniprogram # 小程序前端目录 | ├── app.js | ├── app.json | ├── app.wxss | ├── audios # 选词正确错误的发音 | | ├── correct.mp3 | | └── wrong.mp3 | ├── components # 全局组件 | | ├── header | | ├── loading | | └── message | ├── images | | ├── book-BEC.png | | ├── book-CET4.png | | ├── book-CET4Full.png | | ├── book-CET6.png | | ├── book-CET6Full.png | | ├── book-IELTS.png | | ├── book-high.png | | ├── book-kaoYan.png | | ├── book-kaoYanFull.png | | ├── book-middle.png | | ├── book-primary.png | | ├── book-random.png | | ├── combat-back.png | | ├── combat-bgm-close.png | | ├── combat-bgm-open.png | | ├── combat-default-avatar.png | | ├── combat-finish-fail.png | | ├── combat-finish-win.png | | ├── combat-g.png | | ├── combat-pk-getGrade.png | | ├── combat-pk.png | | ├── combat-random-in.png | | ├── combat-random-out.png | | ├── combat-tip.png | | ├── combat-video-ad.png | | ├── combat-x.png | | ├── home-bg.jpg | | ├── home-book.png | | ├── home-btn-ai.png | | ├── home-btn-hot.png | | ├── home-btn-pk.png | | ├── home-btn-random.png | | ├── home-grade.png | | ├── home-issue.png | | ├── home-pikaqiu.png | | ├── home-pvp.png | | ├── home-rank.png | | ├── home-setting.png | | ├── home-sign.png | | ├── home-sun.png | | ├── home-tip.png | | ├── home-userwords.png | | ├── home-win.png | | ├── home-zan.png | | ├── loading.png | | ├── message-close.png | | ├── message-logo.png | | ├── ranking-N1.png | | ├── ranking-N2.png | | ├── ranking-N3.png | | ├── ranking-grade.png | | ├── setting-right.png | | ├── share-default-bg.png | | ├── share-pk-bg.png | | ├── word-countdown.png | | ├── word-delete.png | | ├── word-play.png | | ├── word-share.png | | ├── word-tip.png | | └── word-video-ad.png | ├── miniprogram_npm # 小程序npm目录 | | └── wxapp-animate | ├── model # 全部的数据库操做,这样抽离出来,代码能优美不少 ~ | | ├── base.js # 基类 | | ├── book.js # 一个数据集合对应一个文件 ↓ | | ├── index.js | | ├── room.js | | ├── sign.js | | ├── user.js | | ├── userWord.js | | └── word.js | ├── package-lock.json | ├── package.json | ├── pages # 页面 | | ├── combat # 每个页面下有一个组件目录,做为此页面的业务组件 | | ├── home | | ├── ranking | | ├── setting | | ├── sign | | ├── userWords | | └── wordChallenge | ├── sitemap.json | └── utils | ├── Tool.js # 全局工具类,放了加载、全局store等,后面章节作解析 | ├── ad.js | ├── log.js | ├── router.js # 全局路由 | ├── setting.js # 全局设置 | └── util.js # 全局工具函数 ├── package-lock.json ├── package.json └── project.config.json 复制代码
eslint
、git
、基本架构搭建
、环境区分
之类的设计好了,而后再开始愉快的编码本书是一个实战系列的分享,还达不到掘金小册
的要求,会持续更新、修正,感谢同窗们来一块儿学习 ~npm
因为本项目参加了大学的比赛,因此暂时不作开源,比赛结束在微信公众号:Join-FE
进行开源(代码 + 设计图),关注不要错过哦 ~json
同系列文章,能够到老包同窗的掘金主页食用