KSLITE 模块管理程序开源项目

我要开发同款
匿名用户2015年02月03日
46阅读
开发技术JavaScriptHTML/CSS
所属分类常用JavaScript包、Web应用开发
授权协议未知

作品详情

KsLite是10年开发的一个短小精悍的模块加载器,特别适合在广告投放、广告创意等第三方应用中使用。它的种子文件本身支持异步加载,并可以被多次加载。而其本身已具有现代模块加载器必备的异步的多层依赖处理机制和较完善的包管理及打包机制。

包和模块管理:

模块名由包名,路径,文件名。三部分构成如{packagename}-{path_0}-...-{path_n}-{filename}包类似*.jar,每个包对应一个codebase即classesroot。在S.config.lt_pkgs中配置是一个http地址,如果没有则以为kslite所在地址为base。比如:

S.Config.lt_pkgs={    inf:"https://a.alimama.cn/kslite/",    test:"https://demo.taobao.com/tbad/kslite"}

模块inf-a对应地址http://a.alimama.cn/kslite/inf/a.js模块test-t-1对应地址http://demo.taobao.com/tbad/kslite/test/t/1.js

这样根据模块名称即可定位模块地址,所以不需要add预先注册模块即可直接use。add不执行attach。只有第一次use的时候才执行attach。add同样支持require。可以在载入js后根据require串行加载更多模块。已处理循环引用问题,办法很土。暂时不支持use外部JS文件,如use("jquery.js");

一些说明

文件使用utf-8编码,在合并到别的工程的时候手工编码转换

使用方法

约定禁止不加模块id,不允许使用下面的形式

// 文件及路径, test包下的math模块, 以下类似//test/math.js KSLITE.declare([], function(require, exports){    exports.add = function(a, b){        return a + b;    };});

下面是正确的写法

// 文件及路径, test包下的math模块, 以下类似//test/math.js KSLITE.declare('test-math', function(require, exports){    exports.add = function(a, b){        return a + b;    };});//  test/program.jsKSLITE.declare('test-program', ["test-increment"], function(require, exports){    var inc = require("test-increment").increment;   exports.result = inc(1);});//  调用KSLITE.provide(["test-program"], function(require){    alert(require("test-program").result);});
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论