Closed miniflycn closed 9 years ago
专为客户端开发的小矮人加载器。 Why 许多客户端(如:QQ、微信)有基于webkit内核的内嵌浏览器 手机端流量非常重要,需要极小的模块管理库 新的静态文件与数据并行加载模型,具体参照:https://github.com/miniflycn/parallel-require/blob/master/Readme.md , 未来parallel会合入dwarf项目 提供内置indexedDB,localStorage本地存储以满足各式业务需求 提供内置CDN失败回源 支持依赖检验,可将依赖树完全加载完毕后再回调 Present PC群公告(成功在没有使用本地化时,将render时间降到1s以内) 手Q群公告 找课程(基于本地服务器的动态构建,与基于gulp的打包,后面会提到) compass-node 基于libsass与语法分析的Compass子集实现。 Why https://github.com/sass/libsass/issues/82 很多人想要。。。。。 因为compass的性能无法支持我的本地动态编译任务 How libsass不支持Custom Functions,许多功能不是仅仅使用sass内置语言就能解决,需要想办法在Javascript解析Sass并执行。 单纯用Javscript写一个Sass语法分析器,那我用libsass干啥…… 我们分了三步进行: 用sass内置语言解决了一些compass才有的函数 想办法找到所有函数,并丢到函数分析器里解析 在函数分析器进行语法分析,将并将函数替换成最后结果 Present 基本完成基础功能 需要细致的解决函数语法分析以及sass内函数声明并自动导入Javascript中 组建管理更新机制 利用 bower 或者 duo 对我们的组件进行管理更新。 利用单元测试保证组件向后兼容。 Why 我们的组件修复bug之后经常引起新的bug 项目初始化成本过高 组件更新后无法在多个项目中同步,因为我的组件都是代码复制 inhale项目 基于类似gulp的流式动态构建本地服务器,可服用gulp插件,导致构建与开发可以服用大部分代码 Why Fiddler太慢 在多个项目切换和初始化的成本很高 为什么我们不在src进行开发调试,而一定要在dev 更好的客户端打印机制 基于构建的更好的编程体验 Present 找课程使用了这套方案 模块编写的时候以NodeJS模块编写,打包或者动态编译的时候编程通常模块,例如,源代码为:
专为客户端开发的小矮人加载器。
基于libsass与语法分析的Compass子集实现。
利用 bower 或者 duo 对我们的组件进行管理更新。 利用单元测试保证组件向后兼容。
基于类似gulp的流式动态构建本地服务器,可服用gulp插件,导致构建与开发可以服用大部分代码
找课程使用了这套方案
function init() { console.log('hello'); } module.exports = init;
打包后:
define('./main', function (require, module, exports) { function init() { console.log('hello'); } module.exports = init; });
技术规划
dwarf项目
打包后:
Badjs
围观一下玉伯团队的NodeJS代码,毕竟人家玩这套很长时间了。