这篇文章主要是学习下seajs.config中vars、alias、paths、map这4个配置参数的作用和使用方式。这4个配置都会影响一个模块最终的url路径。
alias
seajs.config({
base: 'http://www.main.com/base/',
alias: {
'jquery': 'jquery/jquery/1.10.1/jquery',
'app/biz': 'http://path/to/app/biz.js',
}
});
define(function(require, exports, module) {
var $ = require('jquery');
//=> 加载的是 http://www.main.com/base/jquery/jquery/1.10.1/jquery.js
var biz = require('app/biz');
//=> 加载的是 http://path/to/app/biz.js
});
当模块标识很长,写起来不方便、容易出错的时候,可以使用alias来简化模块标识。在seajs.config中进行一次配置之后,所有js模块都可以用require("jquery")这种简单的方式来加载对应的模块了。使用alias,可以让文件的真实路径与模块调用标识分开,有利于统一维护。
paths
seajs.config({
base: 'http://www.main.com/base/',
// 别名配置
alias: {
'hostA-jquery': 'hostA/jquery/1.10.1/jquery.js',
},
paths: {
'hostA': 'https://www.shenzhen.com/sz'
'app': 'path/to/app'
}
});
define(function(require, exports, module) {
var underscore = require('hostA/underscore');
//=> 加载的是 https://www.shenzhen.com/sz/underscore.js
var jquery = require('hostA-jquery');
//=> 加载的是 https://www.shenzhen.com/sz/jquery/1.10.1/jquery.js
var biz = require('APP/biz');
//=> 加载的是 http://www.main.com/base/path/to/app/biz.js
});
当目录层次比较深,或者是跨目录调用模块的时候,可以用pa