seajs使用记录

来源:互联网 发布:java框架发展 编辑:程序博客网 时间:2024/05/21 11:29

seajs使用记录
关于base的默认路径:
【官方说明】: 模块系统的基础路径即 base 的默认值,与 sea.js 的访问路径相关: 如果 sea.js 的访问路径是: http://example.com/assets/sea.js
则 base 路径为: http://example.com/assets/
当 sea.js 的访问路径中含有版本号时,base 不会包含 seajs/x.y.z 字串。 当 sea.js 有多个版本时,这样会很方便。
如果 sea.js 的路径是: http://example.com/assets/seajs/1.0.0/sea.js
则 base 路径是: http://example.com/assets/

seajs的默认路径依赖:127.0.0.1/foo/assets/seajs/sea.js,当前sea.js所在的目录或seajs文件夹所在的目录【assets/】
其他路径的话需要重新设置路径,比如127.0.0.1/foo/public/base/sea.js
我要设置public为默认路径,在config里设置base:’./public’

‘./‘是当前默认目录,当前默认目录是网站根目录开始

当然,也可以手工配置 base 路径:

seajs.config({base: 'http://code.jquery.com/'});

在模块代码里:

require.resolve('jquery');// => http://code.jquery.com/jquery.js

【注意】:一般请不要配置 base 路径,把 sea.js 放在合适的路径往往更简单一致。
【参考】:https://github.com/seajs/seajs/issues/258

引入后的调试方法:

alert(require.resolve('jquery'));alert($); 

常见问题
问题一:
改变了jquery.js存放的目录后,文件已经加载,但无法引用。 这个是因为路径于不匹配导致的。 你用的是从seajs官方下载的jquery源,它是打包好的cmd模块,只不过比较特殊而已。ID 是 jquery/jquery/1.10.1/jquery,seajs的define默认ID是于路径想匹配的,所以改变路径后就引用不到。 如果是非官方的jquery源,你就必须自己处理,暴露出方法接口:

jquery.jsdefine(function(require,exports,module) {    module.exports = jQuery;});main.jsdefine(function(require, exports, module) {    var $ = require('jquery');})

或者直接引用

define(function(require, exports, module) {     require('jquery');})
0 0
原创粉丝点击