为小程序而生的小(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

相关文章
|
2天前
|
前端开发 JavaScript 搜索推荐
深入探讨单页面应用程序(SPA)的优势与实践
深入探讨单页面应用程序(SPA)的优势与实践
|
3天前
|
开发框架 安全 前端开发
移动应用开发的未来:跨平台框架与原生操作系统的协同进化
【5月更文挑战第15天】 随着移动设备的普及,移动应用开发正经历着前所未有的变革。本文将深入探讨移动应用开发的最新趋势,特别是跨平台开发框架的兴起以及它们如何与原生操作系统相互作用。我们将分析跨平台工具如React Native和Flutter的技术进步,以及它们如何影响开发者社区和应用性能。同时,考察移动操作系统的最新更新,特别是Android和iOS在兼容性、安全性和性能方面的创新。本文旨在为开发者提供一个关于移动应用未来走向的清晰视角,帮助他们做出更明智的技术选择。
|
4天前
|
XML 存储 Java
安卓应用开发入门:构建您的第一个移动应用
【4月更文挑战第13天】本文引导读者入门安卓应用开发,首先介绍设置开发环境,包括安装JDK和Android Studio。接着,通过Android Studio创建第一个项目,解析项目结构,重点讲解`AndroidManifest.xml`和`activity_main.xml`。然后,设计一个显示"Hello World!"的布局,并在`MainActivity.java`中编写相应逻辑。最后,运行并调试应用,鼓励读者继续学习安卓开发的更多知识,提升技能。
|
4天前
|
开发框架 小程序 前端开发
小程序全栈开发中的跨平台解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨平台问题,包括前端、后端和数据交互差异,并提出了解决方案:使用跨平台框架(如Taro、uni-app)、设计统一后端接口、创建API适配层以及利用云开发平台。这些方法旨在帮助开发者提高效率,实现一次开发多平台运行。随着技术进步,预计会有更多便捷的跨平台工具出现。
|
4天前
|
消息中间件 并行计算 网络协议
探秘高效Linux C/C++项目架构:让进程、线程和通信方式助力你的代码飞跃
探秘高效Linux C/C++项目架构:让进程、线程和通信方式助力你的代码飞跃
47 0
|
6月前
|
搜索推荐 前端开发 程序员
低代码开发的优势与劣势,看这一篇就够了
低代码开发的优势与劣势,看这一篇就够了
|
8月前
|
小程序 JavaScript 前端开发
4大主流小程序平台介绍及其优缺点对比
小程序是一种轻量级应用程序,能够在手机上直接运行,无需下载安装,适用于一些简单的功能场景,如点餐、预约、查看天气等。以下是目前主流的小程序平台及其优缺点对比
425 0
|
存储 前端开发 算法
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
149 0
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
|
存储 移动开发 小程序
H5/小程序小游戏项目系统开发技术(成熟概念)
H5/小程序小游戏项目系统开发技术(成熟概念)
106 0
|
Cloud Native 架构师 Serverless
今天4点 RISC-V 高性能编译器带来更快速、流程的开发体验! | 第37期
今天下午4点,RISC-V 高性能编译器,了解高性能编译器带来更加快速、流程的开发体验。
今天4点 RISC-V 高性能编译器带来更快速、流程的开发体验! | 第37期