微信小程序已经内测有一段时间了,笔者本着好奇加学习的心态写了几个小demo,虽然在MINA框架上并没有遇到太多的坑,但官方开发工具实在不敢恭维。

  • api提示不全,要一个个查api啊,写代码超级慢啊
  • 很多必备的快捷键都没有,比如全选关键字、快速复制一行等等
  • 颜色主题不能选?不喜欢白色风格怎么搞
  • 没有插件 没有插件 没有插件 重要的事情说三遍

无奈笔者走上了尝试各种IDE的旅途,现在说一下笔者对于IDE的需求或者设想:

  • 轻量级:我不喜欢那种类似Eclipse的庞然大物,即使出现类似工具我也不会去使用,因为其中90%的功能都不会被用到。
  • 可定制化的代码着色:代码着色是必备功能,如果支持颜色模板最好
  • 准确的代码提示:这个太重要了,大家懂得
  • 可调试:IDE可以进行调试或运行
  • 实时预览界面:由于应用开发与网页不同,实时预览必须在程序运行时才会将动态数据加载到界面,这块我不抱太大希望

针对上面几个需求,笔者前后尝试了目前市面上支持小程序开发的工具,呕心沥血总结如下,以供大家参考。

微信小程序官方开发工具

注意,这个小标题我并没有使用“IDE”字眼。因为在笔者眼中,它真的是个工具,而不是一个IDE。官方工具中的代码编辑功能,就是将vscode的代码编辑功能嵌入到工具中,不足以支撑开发。

优点

因为是官方工具所以有这其它第三方工具有这不可比拟的天然优势,如果不是他代码编辑功能太弱的话。

  • 官方工具,可调试,可预览
  • 基本的代码编辑、智能提示、调试等功能都有
  • 项目管理、创建、手机预览、代码提交审核
  • 官方维护更新

缺点

不好的地方也很明显,总体而言是一款工具而不是IDE。糟糕的代码编辑功能,写起代码非常别扭,这是我放弃它的最重要原因。

  • api提示不全,要一个个查api啊,写代码超级慢啊
  • 很多必备的快捷键都没有,比如全选关键字、快速复制一行等等
  • 颜色主题不能选?不喜欢白色风格怎么搞
  • 没有插件 没有插件 没有插件 重要的事情说三遍

总结

目前因为需要用到微信web开发工具进行小程序的创建、调试、查看、预览、上传,所以这个工具必不可少。但是代码编辑功能实在太差,推荐使用其它第三方代码编辑工具代替。

Sublime Text 3

说完官方工具,聊一聊我日常工作最常用的工具 sublime text 3,它定位于代码编辑器而不是IDE,试用了一下,在代码提示方面只能算得上一般般。

优点

  • 打开文件速度倍儿快、UI简洁大方
  • 代码编辑体验舒适、高效
  • 拥有大量插件,针对不同需求基本上能找到对应插件来满足
  • 第三方开发者开发小程序插件用于代码着色和代码提示

缺点

  • 没有调试,没有预览
  • 因为是第三方开发者编写的插件,代码提示也不是非常全面

总结

除了本身的代码编辑优势,对于小程序开发并没有什么实质性帮助,最终Sublime Text方案也被笔者放弃。

不得不吐槽 Sublime Text的这个插件,搞了好久才把它run起来,郁闷。

注:插件下载链接在文末

Vim + WEPT

Vim这个编辑器之神一直是我的装逼利器,关于vim的好我就不多说了,免得Emacs的人过来骂我。

网上有人已经开发了对应插件,叫做 Wxapp.vim 这个插件我简单用了一下,包含文件检测、智能补全、文档跳转、语法高亮、缩进、代码段、单词列表、语法检查等功能。总体来说还是不错的,但存在一个严重问题。笔者在做服务器开发的时候,基本使用Vim编程,在配合一些其他的插件和工具直接在终端运行调试。但微信小程序这个我用了半天不得不放弃,因为要经常在Vim和微信小程序官方工具之间来回切换,似的笔者极为烦躁。按照笔者一惯作风,使用Vim的时候就应该把鼠标扔掉。

但最终我还是发现了一个补救方案,下面会介绍一下。

优点

  • 代码高亮,代码提示等功能齐全。
  • 有小程序开发插件Wxapp.vim可以使用,上文已经提到

缺点

  • 无法调试预览
  • 另外一个问题在于很多人搞不定Vim,这货学习曲线优点高
  • UI和使用方式不符合大多数人的习惯

总结

'WEPT'这个货解决了我上面Vim说的痛点。

WEPT 是一个微信小程序实时开发环境,它的目标是为小程序开发提供高效、稳定、友好、无限制的运行环境。也就是说,它本身是一个实时运行环境,可以做到实时预览和调试。同时调试可以借助chrome浏览器完成。和前面Vim搭配完美解决了代码编辑到调试再到预览的问题。

这货不算是IDE,笔者也不做优点缺点分析了。总体来说,WEPT+VIM+Plugin 是个不错的解决方案。推荐大家使用。

注:插件下载链接在文末

WebStorm

WebStorm网上有个插件,可以实现代码提示,不能做调试和预览,并且属于重度工具,所以笔者没有使用WebStorm。喜欢厚重感的童鞋可以尝试一下这个工具。

优点

  • 有插件可以实现代码高亮,代码提示等功能
  • 有非常成熟和非常丰富的功能
  • 各种快捷键

缺点

  • 无法调试预览
  • 功能比较多、比较臃肿

总结

总结来说,webstorm和上述几个一样,代码编辑功能强大但是需要插件支持才可以开发小程序,而且体积臃肿。

注:插件下载链接在文末

Egret Wing

Wing这个东西算的上是笔者看到的第一个公司级别支持的IDE了,所以功能做的相当成熟。下载尝试了一下,就目前来说除了上面的Vim方案,这个应该是目前对比后最佳的IDE工具了。

优点

  • 支持代码提示,代码高亮
  • 实时预览和调试和切换不同分辨率预览
  • 居然支持项目创建?!
  • 支持新建page模板文件
  • 双周更新

缺点

  • 实时界面预览属于静态渲染,对于界面中的动态数据无法进行预览,只能在调试时进行预览。
  • 无法进行可视化拖拽生成界面(是我太贪心了么?)

总结

Wing是唯一一款支持实时预览功能的IDE,包括微信官方都没有实时预览而是需要编译后预览,对于大懒人的笔者来说有实时预览写界面的时候不要太爽!wing不但可以而且还可以创建项目,新建page模板,运行一下项目发现,这个预览界面和微信官方开发工具非常相似。优先推荐使用。

总结

整理个表,大家看自己心情选择。

环境/工具 简述 代码高亮 代码提示 调试 实时预览 软件/插件下载地址
官方工具 微信小程序官方工具 支持 极其弱 支持 支持 下载软件
Egret Wing 首款支持微信小程序开发的IDE。 支持 支持 支持 支持 下载软件
Sublime Text 3 Sublime Text需要安装插件。 支持 支持 不支持 不支持 插件
Webstorm WebStorm 重量级IDE 支持 支持 不支持 不支持 插件
vim + WEPT 强大的组合工具 支持 支持 支持 支持 Vim插件、WEPT

5款微信小程序开发工具使用报告,微信官方开发工具还有待提升的更多相关文章

  1. 微信小程序(有始有终,全部代码)开发--- 新增模块: 图片选取以及拍照功能

    开篇语 前几天发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本: 简年18: 微信小程序(有始有终,全部代码)开发 ...

  2. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  3. 微信小程序(有始有终,全部代码)开发--- 新增【录音】以及UI改进

    开篇语 寒假发了一篇练手文章,不出意外地火了: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本,出乎意料的火了: 简年18: ...

  4. 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复

    开篇语 昨晚发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站.然后在一股 ...

  5. 微信小程序又一爆炸功能上线-云开发

    云开发介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开 ...

  6. 微信小程序专题(一)-----微信后台的相关开发

    本人最近在做微信小程序后端的相关开发工作 接触到微信小程序目前来讲需要两个条件 1.前端通过后台服务器去调用微信平台接口,来获取openid: 2.前端必须调用https 跟域名的形式 不得出现ip加 ...

  7. 微信小程序初使心得【微信小程序快速入门】

    摘要: 2016年推出微信小程序,时至今日,历经几个版本的更新,已形成了相对实用和稳定的服务平台.本文简单的介绍了微信小程序的入门用法,今后会继续关注和实践. 2016年推出微信小程序,时至今日,历经 ...

  8. 微信小程序 初步认识一(微信运动步数)

    1.注册微信小程序 2.安装小程序开发工具 3.实例(显示微信运动步数) 4.后端处理(c#) 一 注册微信小程序 注册地址:https://mp.weixin.qq.com/cgi-bin/regi ...

  9. (微信小程序)一 : 初识微信小程序

    首先看过angularjs的同学们在看微信小程序的创始文件应该不算很陌生吧. 需要看的 先是文件目录 看完这个目录..得知 ( 一 )    pages   他存放于多个页面 如 index ,log ...

  10. 微信小程序-从零开始制作一个跑步微信小程序

    来源:伯乐在线 - 王小树 链接:http://ios.jobbole.com/90603/ 点击 → 申请加入伯乐在线专栏作者 一.准备工作 1.注册一个小程序账号,得用一个没注册过公众号的邮箱注册 ...

随机推荐

  1. Linux编程日常错误

    编译的时候出现如下错误提示: undefined reference to `sem_init'undefined reference to `sem_post'undefined reference ...

  2. IDEA自动部署WEB工程至远程服务器(学习笔记)

    一.部署Web工程的几种方式 ①本地打war,上传至远程服务器tomcat容器即可 优点:简单粗暴 缺点:浪费时间 ②IDEA自动部署至远程服务器 优点:节省大量时间 缺点:配置稍多(第一次) 二.I ...

  3. Centos610安装Archiva

    安装说明: https://www.cwiki.us/display/ArchivaZH/Linux+Installing+Standalone 1.下载地址 https://archiva.apac ...

  4. 数据库的小案例(三):用递归实现TreeView层级显示

    从这个小案例我学到了不少知识.这些无论如何无法从书里得来.正所谓实践出真知,学习编程需要大量实践这句话永不过时. 首先:好的代码和坏的代码带来的性能上的差异很明显.好的策略可以让你的程序运行速度大大加 ...

  5. Airless Bottle-Can Be Used On Any Cream Product

    Airless Bottle   and  Airless   Pump are very effective at containing your makeup products. Although ...

  6. 解析-analysis

    解析-analysis 1.      解析-analysis 可以理解为分词. 解析由解析器——analyzer执行,解析器包括内置和用户自定义两种. 1.1.    解析器 1.1.1.   内置 ...

  7. ZOJ1004 Anagrams by Stack

    题目大意:规定 i 为入栈,o 为出栈,现在给两个字符串st1,st2,现在要将st1转化为st2,转化方法是,st1中字符从头开始入栈,并合理出栈构造出st2.请输出所有可能的出入栈步骤. 深度优先 ...

  8. java 8 list的stream操作 list中的对象中的某一个成员取出转为该成员的list,以及对象过滤,筛选某个属性后的成员

    取成员属性list List<String> configList = codeEntityList.stream().map(t -> t.getName()).distinct( ...

  9. Java面向对象编程 -1.3

    类与对象的定义与使用 在Java之中类是一个独立的结构体,所以需要使用class来进行定义,而类之中主要由属性和方法所组成,那么属性就是一个个具体的变量,方法就是可以重复执行的代码. 定义一个类 cl ...

  10. 基础总结篇之八:创建及调用自己的ContentProvider

    转自:http://blog.csdn.net/wellsoho/article/details/49494141 若不能坚持到底,即使是朽木也不能折断:只要坚持不停地用刀刻,就算是金属玉石也可以雕出 ...