seajs的那些坑
2020-12-13 16:35
标签:style class blog code java http 如果我们能理解其模块标识解析设计的出发点,那么就可以轻易的理解这些而不用记忆这么多: 目录结构如下: 然后运行make deploy 会将 ../dist/main 部署到 /www/sea-modules/blog/user/1.0.0/main.js 在页面中如何加载模块呢? seajs的那些坑,搜素材,soscw.com seajs的那些坑 标签:style class blog code java http 原文地址:http://www.cnblogs.com/xuntu/p/3799988.htmlseajs是what?
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){
// .......................
});
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>
参考阅读: