当前位置: 首页 > 科技观察

一个小程序的小(jiao)脚手架

时间:2023-03-14 14:27:49 科技观察

前言前不久我们期盼已久的应用(xiao)应用(cheng)号(xu)终于诞生了,但是微信创造了一系列的封闭环境。在beta版本中,我们看到开发其实很不方便。为了提高我们的工作效率,一个小手框诞生了---wxappwxapp介绍优点1.可以在任何IDE中开发2.可以使用ES6或者ES53。可以使用sass4。可以写.html|.wxml,.wxss|.scss文件,***将转换为.wxml和.wxss5。写入任意文件(包括.json)后,进入微信开发者工具点击重启即可预览。六、NODE_ENV环境切换缺点1.由于微信处于封闭环境,没有sourcemap,但这不影响调试(即使是编译代码,我测试了有bug的代码,还是可以从控制台跳转到源码)2.由于微信Inside封闭环境,无法实现reload或hotreloadPS:当然,如果你不想写ES6,完全可以。我稍后会介绍这些命令。安装//安装我们的命令//macsudonpmi-gwxapp//windowpmi-gwxappuse//初始化一个目录结构wxappinit[project_name]//比如wxappinitfirst-wxappDEVnpmrundev//默认开启ES6模式npmrundev-es5//ES6modeisnotenabled---dist...//这里的文件都是经过编译处理的,和src目录结构完全一样---src|---image|---pages|---index|---index.js|---index.scss(可以直接写sass)|---index.html(可以直接写html文件)|---logs|---logs.js|---logs.json(json文件也会实时编译)|---logs.wxml(也可以直接写wxml文件)|---logs.wxss(也可以直接写wxss文件)app.jsapp.jsonapp.sass...然后我们只需要打开微信开发者工具,添加一个项目,项目目录指向dist目录即可。在NODE_ENV开发中,我们经常需要有dev和pro两种环境,根据不同的环境做一些事情,比如HTTP请求链接//ES6开发模式//./src/utils/ajaxurl.jsvarserver1='https://我是。server1.url';varserver2='https://im.server2.url';varserver=null;if(NODE_ENV==='dev'){server=server1;}elseif(NODE_ENV==='production'){server=server2;}module.exports=server;//ES5开发模式//./src/utils/ajaxurl.jsvarserver1='https://im.server1.url';varserver2='https://im.server2.url';varserver=null;if('NODE_ENV'==='dev'){//这里写一个字符串,我把这里的字符串替换掉server=server1;}elseif('NODE_ENV'==='production'){server=server2;}module.exports=server;Buildnpmrunbuild//默认ES6模式npmrunbuild-es5//使用ES5写模式PS:这里有个坑,因为build会压缩代码,所以如果你用ES5写,不要像promise那样使用ES6代码,uglify压缩不支持。虽然微信开发者工具的谷歌内核貌似支持部分ES6代码,但并不能保证用户会不会真正使用。如果你写ES5模式,我建议你写纯ES5TODO。我们知道微信要我们创建4个文件来写页面或者组件。所以在下一个版本中,我会写一个命令来创建这4个文件的模板。[]一键创建讲后小程序还在内测中。这套脚手架我是凭着直觉和经验直接做出来的,在测试中可能略显不足。(目前测试了node5和node6版本,window10和mac)。如果大家有什么问题,可以第一时间提交issue给我,我会在一天之内给大家回复。未来小程序将全面测试,微信也有可能解决工程问题。但我还是更喜欢在我最喜欢的IDE里写代码:)***给github地址:https://github.com/MeCDodo/wxapp-cli