轉: seajs手冊與文檔之 -- 配置選項


config

可使用 config 方法來配置seajs。html

seajs.config({
  alias: { //~~~相似requirejs的paths
    'es5-safe': 'es5-safe/0.9.2/es5-safe',
    'json': 'json/1.0.1/json',
    'jquery': 'jquery/1.7.1/jquery'
  },
  preload: [
    Function.prototype.bind ? '' : 'es5-safe',
    this.JSON ? '' : 'json'
  ],
  debug: true,
  map: [
    ['http://example.com/js/app/', 'http://localhost/js/app/']
  ],
  base: 'http://example.com/path/to/libs/',   //~~~相似requirejs的baseUrl
  charset: 'utf-8',
  timeout: 20000
});

支持如下配置選項:jquery

alias

當模塊標識很長時,可使用 alias 配置來簡化。~~~設置路徑別名json

seajs.config({
  alias: {
    'app': 'http://path/to/app',
    'jquery': 'jquery/1.7.1/jquery'
  }
});

a.js:bootstrap

define(function(require, exports, module) {
    var $ = require('jquery');
      //=> http://path/to/libs/jquery/1.7.1/jquery.js

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

解析某個模塊標識時,若是不想解析別名,能夠在標識前面添加一個井號(#):瀏覽器

define(function(require, exports, module) {
    var $ = require('#jquery');
      //=> http://path/to/libs/jquery.js
});

preload

使用 preload 配置項,能夠在普通模塊加載前,提早加載並初始化好特定模塊。app

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

preload 中的空字符串會被忽略掉。ide

debug

值爲 true 時,加載器會使用 console.log 輸出全部警告和錯誤。 默認爲 false, 加載器只拋出異常。requirejs

另外,還能夠將 debug 值設爲 2 . 這種狀況下, 每一個腳本請求都會加上惟一時間戳。這在測試期間頗有用,能夠強制瀏覽器每次都請求最新版本。測試

map

該配置可將某個文件映射到另外一個。可用於在線調試,很是方便。更多信息,請參考 映射插件ui

base

SeaJS 在解析頂級標識時,會相對 base 路徑來解析。詳情請參閱 頂級標識

** 注意:請不要配置 base 路徑,除非加載器沒法自動獲取。詳情請參考 加載方式

charset

獲取模塊文件時,<script> 標籤的 charset 屬性。 默認是 utf-8

timeout

加載器等待腳本加載的最長時間。單位爲毫秒,默認值是 20000(20秒)。

noConflict 

爲了不衝突,或者須要定製全局命名空間以符合本身的口味時,可使用 noConflict 方法來實現。 ~~~相似jquery.noConflict

var myLoader = seajs.noConflict();
myLoader.use('./main');

/* main.js */
define(function(require, exports, module) {
  // snip...
});

還能夠經過給該方法傳遞 true,來釋放 define 方法。 不多會有這麼作的必要, 請三思然後行。

var myLoader = seajs.noConflict(true);
myLoader.use('./main');

/* main.js */
myLoader.define(function(require, exports, module) {
  // snip...
});
相關文章
相關標籤/搜索