EgretWing3入门指南

EgretWing3是Egret团队基于VSCode开发的最新编辑器,相比于EgretWing2.5最显著的优势就是快。

然而对于习惯使用EgretWing2.5的用户,初次使用EgretWing3可能会觉得难以上手。EgretWing2.5主要是参考eclipse,FlashBuilder等传统IDE设计的,对于习惯使用eclipse系列工具的开发者EgretWing2.5的上手是非常容易的,而EgretWing3的操作方式对于习惯于传统IDE的用户来说,并不是那么友好。本文主要介绍EgretWing3的一些基本用法。

gulp流式操作

对于很多刚刚接触gulp的人来说,常常觉得gulp中的stream操作不可理解。本篇将介绍stream在gulp中的应用,探究gulp中的流式操作。

一般来说gulp插件开发或者自定义任务都需要借助一些stream的包装模块。比较常用的有event-streamthrough2

调试vscode

在调试vscode之前,有必要先了解一下vscode的运行过程。

vscode的启动过程

electron是vscode的内核,vscode的启动类在package.json中定义

"main": "./out/vs/workbench/electron-main/bootstrap"

electron启动时通过atom.asar这个文件,加载package.json中定义的main脚本启动程序。

如果搜索vscode的项目文件列表,你会发现其他位置还有一个bootstrap文件

./out/bootstrap.js

其实这个也是启动类,只不过是PluginHost的启动类。

TP-MR12U路由器刷openwrt和不死boot

前不久买了一个无线路由器TP-MR12U,买这个东西的初衷是想和家里另外一个主路由做桥接并自动上vpn,这样两个wifi信号一个和谐上网,一个科学上网。然而,买来后才发现这个路由器是v2版本的,并不能同时支持开启无线中继wds和vpn拨号功能,也就是然并卵。经过一番调查,发现或许可以通过刷入openwrt固件的方式实现这些功能。于是,就有了此教程。刷机有风险,入市需谨慎。

突破AIR程序的权限限制

AIR中有些API在没有权限的情况下是不生效的,甚至不报错也没没有任何提示。例如文件系统中对敏感目录的文件操作,File.applicationDirectory这个API的文档是这样说的

出于安全原因,不推荐修改应用程序目录中的内容,有些平台上的操作系统会阻止此操作。
如果要存储特定于应用程序的数据,请考虑使用应用程序存储目录 (File.applicationStorageDirectory)。

可以看到File.applicationDirectory这个目录是无法保证有权限写入的。这篇文章讲解如何在Windows和Mac下突破这一限制,能获取系统中任何目录的操作权限。

AIR中一些隐藏特性

分享一下在使用AIR开发跨平台应用的几个坑。在此之前不得不说,stackoverflow这个网站帮了我很多。每次遇到一些棘手的技术问题寻找答案未果的情况下,stackoverflow总能找到令人满意的答案。这里分享两个我遇到的一些问题。