项目简介
本项目旨在提供一个开放的、无侵入的脚本库管理解决方案,提供一个全面的,前端开发调试,打包导出环境支持。他可以作为一个开发期间的脚本管理工具,让开发者在开发期间享受JSI带来的种种便捷,也可以作为一个运行时的脚本管理框架,让类库编写者能够自己管理好自己编写的类库的相关依赖,让最终用户从繁琐的依赖管理中解脱出来,提高类库的易用性。
JSI 拥有一套完善有效的模块隔离机制,方便于 重用、组织第三方脚本,避免它们带来的命名污染问题。JSI极力追求简单,不加入特殊语法,被管理的脚本无框架依赖。
我们作为一个开放的整合已有类库的框架,不打算内置任何官方API,尽量做到API中立性,但是,我也将主持JSIDE(JSI SIDE)这个项目的开发,他将以JSI为基础,做一些实践,并提供一些可选类库。同时其他用户也可以根据自己喜好整合其他类库,当能我们也会提供一些整合已有著名脚本类库的实例(如:jQuery、Prototype、Scriptaculous、YAHOO UI)。
JSI风格
- 无侵入
- 所谓无侵入,就是说,在JSI管理的脚本中,无需增加JSI特有的元素;脚本还是简单的脚本。
- 不加入特殊语法,被管理的脚本无框架依赖。
- JSI集成第三方脚本时,一般也无需改动原来的脚本。
- 追求简单自由
- JSI对被管理的脚本,没有繁琐的条条框框。
- 用户可以及大限度的延续自己的编程习惯。
- JSI引入了包的概念,但与YUI之类类库的包不同。他无需显示申明,我们通过文件位置直接映射到相应包路径—— 约定优于配置。
- JSI引入了装载单元的概念,而他只是以前的脚本文件,只不过是强调了文件之间的独立性。
基本功能
- 管理依赖
- 避免依赖的暴露、扩散,提高类库的易用性
- 隔离冲突
- JSI中,每个脚本都有单独的执行上下文,不必担心不同脚本的命名冲突。
- 在JSI的保护下,我们可以自由大胆的使用全局变量。
- 增量部署和开发
- JSI对脚本的开发和部署是增量性质的;新类库的加入,不会影响其它类库;在调试期间,我们还支持类库的jar打包方式和xml打包方式,方便第三方类库的组织管理。
- 合并导出
- JSI管理的脚本,可以随时导出成普通脚本,完全脱离框架依赖。 让你的脚本以最快的速度运行,。
- 你既可以在开发时享受细分模块带来的调试的便捷。又能避免上线后零散文件,及脚本管理逻辑对系统性能的影响,
简单之外
- JSI对外的接口是简单的,与同类框架比较,暴露的API最少。
- JSI是目前唯一的一个可以支持异步导入和非阻塞延迟导入的成熟的脚本管理框架。
- JSI的脚本依赖管理功能相对完善,可以简单的实现装载依赖的前后区分。
