为小程序而生的小(jiao)手架

简介:


前言

不久前我们一直所期待的应(xiao)用(cheng)号(xu)终于诞生了,但微信制造了一系列的封闭环境,在内测版中,我们看见了开发其实是十分不便利的。为了能提升咱们的工作效率,小手架由此而生 --- wxapp

wxapp介绍

优势

1.可以在任意IDE中开发

2.可使用ES6或ES5

3.可使用sass

4.可以同时编写.html|.wxml,.wxss|.scss 文件,最后都会转换为.wxml和.wxss

5.编写完任何文件(包括.json)只需要去微信开发者工具中点击重启即可预览

6.NODE_ENV 环境切换

劣势

1.由于微信封闭的环境内,所以没有sourcemap,但这不太影响调试(即使是经过编译后的代码,本人测试了出bug的代码,还是可以从控制台跳到源码的地方)

2.由于微信封闭的环境内,无法实现reload或者hot reload

PS: 当然如果你不想写ES6也是完全可以的 在后面统一介绍命令

安装

 
  1. // 安装我们的命令 
  2. //mac 
  3. sudo npm i -g wxapp 
  4. // window 
  5. npm i -g wxapp 

使用

 
  1. // 初始化一个目录结构 
  2. wxapp init [project_name] 
  3.  
  4. // 如 
  5. wxapp init first-wxapp  

DEV

npm run dev // 默认启用了ES6模式

npm run dev-es5 // 不启用ES6模式

 
  1. --- dist 
  2. ... // 这里的文件是编译处理过后的,和src目录结构完全相同      
  3. --- src 
  4.     |--- image 
  5.     |--- pages 
  6.         |--- index 
  7.             |--- index.js 
  8.             |--- index.scss (可直接编写sass) 
  9.             |--- index.html (可直接编写html文件) 
  10.         |--- logs 
  11.             |--- logs.js 
  12.             |--- logs.json (json文件也会实时编译) 
  13.             |--- logs.wxml (也可直接写wxml文件) 
  14.             |--- logs.wxss (也可直接写wxss文件) 
  15.     app.js 
  16.     app.json 
  17.     app.sass 
  18. ...  

接着我们只需要打开微信开发者工具,添加项目,那个项目目录指向为dist目录即可。

NODE_ENV

开发中往往我们需要有dev和pro环境,根据不同环境下做一些事情,比如HTTP的请求链接

 
  1. // ES6开发模式下 
  2. //  ./src/utils/ajaxurl.js 
  3. var server1 = 'https://im.server1.url'
  4. var server2 = 'https://im.server2.url'
  5.  
  6. var server = null
  7.          
  8. if(NODE_ENV === 'dev') { 
  9.     server = server1; 
  10. else if(NODE_ENV === 'production') { 
  11.     server = server2; 
  12.    
  13. module.exports = server;  
 
  1. // ES5开发模式下   
  2. //  ./src/utils/ajaxurl.js 
  3. var server1 = 'https://im.server1.url'
  4. var server2 = 'https://im.server2.url'
  5.  
  6. var server = null
  7.          
  8. if('NODE_ENV' === 'dev') { // 这里要写字符串,我会替换这里的字符串 
  9.     server = server1; 
  10. else if('NODE_ENV' === 'production') { 
  11.     server = server2; 
  12.    
  13. module.exports = server;  

Build

npm run build // 默认ES6模式

npm run build-es5 // 使用ES5编写模式

PS:这里有个坑,由于build会压缩代码,所以如果你用ES5编写,别用promise这样的ES6的代码,uglify压缩不支持。

虽然微信开发者工具用谷歌内核貌似支持部分ES6的代码,但现在也不能保证用户真正使用是否支持。如果写了ES5模式,建议大家写纯纯的ES5

TODO

我们知道微信希望我们创建4个文件来写page或者组件。所以下一个版本我会写个命令创建这4个文件的template。

  • [ ] 一键创建文件

后话

小程序目前还在内测当中,本人凭着直觉和经验直接做出了这一套脚手架,在测试上可能略有不足。(目前测试了node5和node6版本,window10和mac)。大家有问题可以第一时间给我提issue,我会在一天内给你答复。

未来小程序完全公测了,微信可能会把工程化的问题也一并解决了。但是我还是更愿意在喜欢的IDE中编写代码 :)


作者:二哲

来源:51CTO

相关文章
|
3天前
|
机器学习/深度学习 开发框架 前端开发
探索移动应用开发的未来:跨平台框架与原生操作系统的融合
【5月更文挑战第4天】在本文中,我们将深入探讨移动应用开发的当前趋势和未来展望,特别关注跨平台开发框架和原生操作系统之间的相互作用。随着技术的不断进步,开发者面临着选择最佳开发策略的挑战,以确保他们的应用能够在不同的移动设备上提供无缝的用户体验。我们将分析跨平台工具如React Native、Flutter和Xamarin的优势与局限,同时考察它们如何与iOS和Android等原生系统协同工作,以及这种协同对移动应用生态系统的潜在影响。
|
2天前
|
机器学习/深度学习 Android开发 开发者
移动应用开发的未来趋势:跨平台与原生之争
【5月更文挑战第5天】随着移动设备的普及,移动应用开发已成为技术创新的前沿阵地。本文将探讨移动应用开发的两大主流模式——跨平台与原生开发,分析各自的优势与局限,并预测未来发展趋势。文章还将深入讨论移动操作系统的演进如何影响开发策略,以及开发者如何在快速变化的市场中保持竞争力。
|
6天前
|
前端开发 开发工具 Android开发
移动应用开发的未来:跨平台框架与原生系统之争
【4月更文挑战第30天】在移动应用的宇宙中,开发工具和操作系统的选择是构建成功应用程序的关键。本文探讨了跨平台框架如React Native和Flutter与原生系统iOS和Android的比较,分析了它们在性能、用户体验(UX)、开发效率和市场接受度方面的优势与挑战。通过深入剖析这些技术的演变趋势,我们预见未来开发者如何在这场激烈的竞争中做出选择,并塑造移动应用开发的未来。
|
6天前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与原生操作系统的融合
【4月更文挑战第30天】随着移动设备用户群体的不断壮大,移动应用已成为日常生活和商业活动不可或缺的一部分。本文将探讨移动应用开发领域的最新趋势,特别是跨平台开发框架与原生移动操作系统之间的融合现象。我们将分析这种融合如何优化用户体验,提高开发效率,并推动移动应用市场向前发展。
|
7天前
|
开发框架 算法 前端开发
深入理解操作系统:进程管理与调度策略移动应用开发的未来:跨平台框架与原生系统的协同进化
【4月更文挑战第30天】 本文旨在探讨操作系统中的核心机制之一 —— 进程管理,并详细分析不同的进程调度策略。通过对操作系统中进程概念的剖析,我们揭示了进程状态、进程控制块(PCB)以及进程调度器的重要性。文章进一步对比了几种常见的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、轮转调度(RR),以及多级反馈队列(MLQ),并讨论了它们在不同应用场景下的性能表现。最后,文章还涉及了现代操作系统中对于多核处理器和实时系统所采用的特殊调度考虑。 【4月更文挑战第30天】 在移动设备日益成为人们日常生活与工作不可或缺的组成部分时,移动应用的开发和维护也变得愈加重要。本文将探讨移动应用
|
7天前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与操作系统的融合
【4月更文挑战第30天】 随着移动互联网的快速发展,移动应用已成为日常生活不可或缺的一部分。本文将探讨移动应用开发领域的趋势和挑战,着重于跨平台开发框架的兴起以及它们如何与多样化的移动操作系统协同工作。我们将深入分析Flutter、React Native等主流框架的技术特点,以及它们在面对iOS和Android两大阵营时的优势与局限。同时,文章还将预见未来操作系统可能对跨平台支持做出的改进,以及这些变化对开发者和用户所带来的潜在影响。
|
7天前
|
前端开发 开发工具 Android开发
移动应用的未来之路:跨平台开发与操作系统的融合
【4月更文挑战第29天】随着移动技术的迅猛发展,移动应用已成为日常生活的必需品。本文深入探讨了移动应用开发领域的最新趋势,特别是跨平台开发工具的兴起以及移动操作系统间的相互影响和融合。分析了Flutter、React Native等跨平台框架的优势与挑战,并预测了它们对未来移动应用生态的潜在影响。同时,文章还考察了Android和iOS两大主流移动操作系统的最新更新,以及它们对开发者策略和用户体验的影响。
|
24天前
|
开发框架 小程序 前端开发
小程序全栈开发中的跨平台解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨平台问题,包括前端、后端和数据交互差异,并提出了解决方案:使用跨平台框架(如Taro、uni-app)、设计统一后端接口、创建API适配层以及利用云开发平台。这些方法旨在帮助开发者提高效率,实现一次开发多平台运行。随着技术进步,预计会有更多便捷的跨平台工具出现。
|
28天前
|
开发框架 人工智能 前端开发
移动应用开发的未来:跨平台框架与原生操作系统的挑战
【4月更文挑战第9天】 在本文中,我们将探讨移动应用开发的最新趋势,特别是跨平台开发框架的兴起以及它们对传统原生操作系统开发模式的影响。我们将分析跨平台工具如React Native和Flutter的技术优势,并讨论它们如何改变开发者对于移动应用性能和用户体验的考量。此外,我们还将预测未来移动应用开发可能面临的挑战,并提出相应的策略建议。
13 0
|
28天前
|
前端开发 Android开发 开发者
探索移动应用开发的未来:跨平台工具与原生系统的挑战
【4月更文挑战第9天】 在移动计算的时代,应用开发正经历着前所未有的变革。本文将深入探讨移动应用开发的新趋势,特别是跨平台开发工具的兴起以及它们如何影响着原生操作系统的应用生态。我们将分析跨平台工具如React Native和Flutter所带来的便利性,同时考察它们在性能、用户体验和系统整合方面所面临的挑战。此外,文章还将探讨移动操作系统的最新发展,包括它们如何处理多任务、安全性问题以及如何为未来的创新铺平道路。通过本文,读者将获得对移动应用开发现状及未来方向的深刻理解。