1 var loder = {}; 2 var define = loder.define = function(id,deps,factory){ 3 loader[id] = factory; 4 };
/)分隔的多项组成。. 或 .. 。.js 。. 或 ..,则该模块标识是相对标识. 或 ..开头顶级路径,不以.或 ..及斜线(/)开头"http://"、"https://"、"file:///" 等协议标识开头的seajs/x.y.z 字串,也可以指定seajs.config({base:});require 所在模块的标识来解析base 基础路径解析。(顶级标识由字符串开头)模块定义中require 和 require.async 的相对路径相对当前模块路径来解析。
如果我们能理解其模块标识解析设计的出发点,那么就可以轻易的理解这些而不用记忆这么多:
目录结构如下:
www
--app --blog index.html --sea-modules --seajs
--2.2.0
sea.js
--blog
--user
--1.0.0
main.js
--static
--user
--src
a.js
b.js
main.js
--dist
main.js
package.json
Makefile
// /www/static/user/src/a.js define(function(require,exports,module){ module.exports = function(){ // .......................... }; });
// /www/static/user/src/b.js define(function(require,exports,module){ module.exports = function(){ // .......................... }; });
// /www/static/user/src/main.js define(function(require,exports,module){
     var a = require(‘./a");
     var b = require(‘./b");
      //  ..............
 }); 
// /www/static/user/package.json { family:"blog", name:"user", version:"1.0.0", spm:{ output:["main.js"] } }
// /www/static/user/Makefile
build: @spm build deploy: @rm -rf ../../sea-modules/blog/user @mkdir ../../sea-modules/blog/user @mkdir ../../sea-modules/blog/user/1.0.0 @cp dist/*.* ../../sea-modules/blog/user/1.0.0 @echo @echo " deploy to seajs-modules/blog/user/1.0.0" @echo
// /www/static/user/dist/main.js
define("blog/user/1.0.0/main",["./a","./b"],function(require){ var a = require(‘./a"); var b = require(‘./b"); }); define("blog/user/1.0.0/a",[],function(require,exports,module){ // ....................... }); define("blog/user/1.0.0/b",[],function(require,exports,module){ // ....................... });
然后运行make deploy
会将 ../dist/main 部署到 /www/sea-modules/blog/user/1.0.0/main.js
在页面中如何加载模块呢?
<!-- www.expample.com/app/blog/index.html --> <script src="/sea-modules/seajs/2.4.0/sea.js" id="seajson"></script> <script> seajs.config({charset:"gbk"}); seajs.use("blog/user/1.0.0/main"); </script>
原文:http://www.cnblogs.com/xuntu/p/3799988.html