配置

2018-11-06 18:26 更新

seajs.config seajs.config(options)

用來進(jìn)行配置的方法。

seajs.config({  // 別名配置
  alias: {    'es5-safe': 'gallery/es5-safe/0.9.3/es5-safe',    'json': 'gallery/json/1.0.2/json',    'jquery': 'jquery/jquery/1.10.1/jquery'
  },  // 路徑配置
  paths: {    'gallery': 'https://a.alipayobjects.com/gallery'
  },  // 變量配置
  vars: {    'locale': 'zh-cn'
  },  // 映射配置
  map: [
    ['http://example.com/js/app/', 'http://localhost/js/app/']
  ],  // 預(yù)加載項(xiàng)
  preload: [    Function.prototype.bind ? '' : 'es5-safe',    this.JSON ? '' : 'json'
  ],  // 調(diào)試模式
  debug: true,  // Sea.js 的基礎(chǔ)路徑
  base: 'http://example.com/path/to/base/',  // 文件編碼
  charset: 'utf-8'});

支持以下配置選項(xiàng):

alias Object

當(dāng)模塊標(biāo)識(shí)很長(zhǎng)時(shí),可以使用 alias 來簡(jiǎn)化。

seajs.config({
  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://path/to/base/jquery/jquery/1.10.1/jquery.js

   var biz = require('app/biz');     //=> 加載的是 http://path/to/app/biz.js});

使用 alias,可以讓文件的真實(shí)路徑與調(diào)用標(biāo)識(shí)分開,有利于統(tǒng)一維護(hù)。

paths Object

當(dāng)目錄比較深,或需要跨目錄調(diào)用模塊時(shí),可以使用 paths 來簡(jiǎn)化書寫。

seajs.config({
  paths: {    'gallery': 'https://a.alipayobjects.com/gallery',    'app': 'path/to/app',
  }
});
define(function(require, exports, module) {   var underscore = require('gallery/underscore');     //=> 加載的是 https://a.alipayobjects.com/gallery/underscore.js

   var biz = require('app/biz');     //=> 加載的是 path/to/app/biz.js});

paths 配置可以結(jié)合 alias 配置一起使用,讓模塊引用非常方便。

vars Object

有些場(chǎng)景下,模塊路徑在運(yùn)行時(shí)才能確定,這時(shí)可以使用 vars 變量來配置。

seajs.config({
  vars: {    'locale': 'zh-cn'
  }
});
define(function(require, exports, module) {  var lang = require('./i18n/{locale}.js');     //=> 加載的是 path/to/i18n/zh-cn.js});

vars 配置的是模塊標(biāo)識(shí)中的變量值,在模塊標(biāo)識(shí)中用 {key} 來表示變量。

map Array

該配置可對(duì)模塊路徑進(jìn)行映射修改,可用于路徑轉(zhuǎn)換、在線調(diào)試等。

seajs.config({
  map: [
    [ '.js', '-debug.js' ]
  ]
});
define(function(require, exports, module) {  var a = require('./a');     //=> 加載的是 path/to/a-debug.js});

更多用法可參考:調(diào)試實(shí)踐

preload Array

使用 preload 配置項(xiàng),可以在普通模塊加載前,提前加載并初始化好指定模塊。

// 在老瀏覽器中,提前加載好 ES5 和 json 模塊seajs.config({
  preload: [    Function.prototype.bind ? '' : 'es5-safe',    this.JSON ? '' : 'json'
  ]
});

preload 中的空字符串會(huì)被忽略掉。

注意preload 中的配置,需要等到 use 時(shí)才加載。比如:

seajs.config({
  preload: 'a'});// 在加載 b 之前,會(huì)確保模塊 a 已經(jīng)加載并執(zhí)行好seajs.use('./b');

preload 配置不能放在模塊文件里面:

seajs.config({
  preload: 'a'});

define(function(require, exports) {  // 此處執(zhí)行時(shí),不能保證模塊 a 已經(jīng)加載并執(zhí)行好});

debug Boolean

值為 true 時(shí),加載器不會(huì)刪除動(dòng)態(tài)插入的 script 標(biāo)簽。插件也可以根據(jù) debug 配置,來決策 log 等信息的輸出。

base String

Sea.js 在解析頂級(jí)標(biāo)識(shí)時(shí),會(huì)相對(duì) base 路徑來解析。詳情請(qǐng)參閱 模塊標(biāo)識(shí)

seajs@2.3.0 之前,Sea.js 會(huì)根據(jù) sea.js 的路徑去猜測(cè) base 路徑,一般為路徑上含有 seajs 字符串的上一級(jí)路徑。在 seajs@2.3.0 后,去掉了這個(gè)模糊的猜測(cè)。我們推薦始終手動(dòng)設(shè)置一個(gè)準(zhǔn)確的 base 路徑

charset String | Function

獲取模塊文件時(shí),<script><link> 標(biāo)簽的 charset 屬性。 默認(rèn)是 utf-8

charset 還可以是一個(gè)函數(shù):

seajs.config({  charset: function(url) {    // xxx 目錄下的文件用 gbk 編碼加載
    if (url.indexOf('http://example.com/js/xxx') === 0) {      return 'gbk';
    }    // 其他文件用 utf-8 編碼
    return 'utf-8';

  }
});

提示

多次配置自動(dòng)合并

seajs.config 可以多次運(yùn)行,每次運(yùn)行時(shí),會(huì)對(duì)配置項(xiàng)進(jìn)行合并操作:

seajs.config({
  alias: {    'jquery': 'path/to/jquery.js',    'a': 'path/to/a.js'
  },
  preload: ['seajs-text']
});
seajs.config({
  alias: {    'underscore': 'path/to/underscore.js',    'a': 'path/to/biz/a.js'
  },
  preload: ['seajs-combo']
});

上面兩處 config 運(yùn)行的結(jié)果是:

 alias = {   'jquery': 'path/to/jquery.js',   'underscore': 'path/to/underscore.js',   'a': 'path/to/biz/a.js'
 };

 preload = ['seajs-text', 'seajs-combo'];

即:config 會(huì)自動(dòng)合并不存在的項(xiàng),對(duì)存在的項(xiàng)則進(jìn)行覆蓋。

插件的配置

插件可以給 Sea.js 添加配置項(xiàng),請(qǐng)查看具體插件了解相關(guān)配置。

配置文件

配置可以直接寫在 html 頁面上,也可以獨(dú)立出來成為一個(gè)文件。

config.js

seajs.config({
  ...
});

獨(dú)立成一個(gè)文件時(shí),一般通過 script 標(biāo)簽在頁面中同步引入。


常用的配置項(xiàng)是 alias、paths、base,其他配置項(xiàng)有需要時(shí),來查查文檔就會(huì)用了。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)