seajs.config構成

15211 ワード

Sea.jsが構成するseajs.config
コンフィギュレーション
Seaに対してjsはモジュールの作成、開発デバッグをより便利にするように構成されています.
seajs.config  seajs.config(options)
構成に使用する方法.
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/']
  ],

  //     
  preload: [
    Function.prototype.bind ? '' : 'es5-safe',
    this.JSON ? '' : 'json'
  ],

  //     
  debug: true,

  // Sea.js      
  base: 'http://example.com/path/to/base/',

  //     
  charset: 'utf-8'
});

次の構成オプションをサポートします.
alias  Object
モジュール識別が長い場合、aliasを使用して簡略化することができる.
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を使用すると、ファイルの実際のパスと呼び出しIDを分離することができ、統一的なメンテナンスに役立ちます.
paths  Object
ディレクトリが比較的深い場合、またはディレクトリ間呼び出しモジュールが必要な場合、pathsを使用して書き込みを簡略化することができる.
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の構成はaliasの構成と組み合わせて使用でき、モジュールリファレンスを非常に便利にします.
vars  Object
一部のシナリオでは、モジュールパスは実行時に決定されない場合があります.この場合、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はモジュール識別における変数値を構成し、モジュール識別には{key}で変数を表す.
map  Array
この構成では、モジュールパスをマッピング変更し、パス変換、オンラインデバッグなどに使用できます.
seajs.config({
  map: [
    [ '.js', '-debug.js' ]
  ]
});
define(function(require, exports, module) {

  var a = require('./a');
     //=>      path/to/a-debug.js

});

詳細は、「デバッグの実践」を参照してください.
preload  Array preloadコンフィギュレーション・アイテムを使用すると、通常のモジュールがロードされる前に、指定されたモジュールを事前にロードして初期化できます.
//       ,      ES5   json   
seajs.config({
  preload: [
    Function.prototype.bind ? '' : 'es5-safe',
    this.JSON ? '' : 'json'
  ]
});
preloadの空の文字列は無視されます.
注:preloadの構成は、useまでロードする必要があります.例:
seajs.config({
  preload: 'a'
});

//     b   ,      a         
seajs.use('./b');
preloadの構成はモジュールファイルに入れられません.
seajs.config({
  preload: 'a'
});

define(function(require, exports) {
  //      ,       a         
});

debug  Boolean
値がtrueの場合、ローダは動的に挿入されたscriptラベルを削除しません.プラグインはdebug構成に基づいてlogなどの情報の出力を決定することもできる.
base  String
Sea.jsは、トップレベル識別を解析する際に、baseパスに対して解析する.詳細はモジュールIDを参照してください
注意:一般的にはbaseパスを構成しないでください.sea.jsを適切なパスに置くと、より簡単に一致します.
charset  String | Function
モジュールファイルを取得する場合、<script>または<link>ラベルのcharset属性.デフォルトはutf-8charsetはまた、関数であってもよい.
seajs.config({
  charset: function(url) {

    // xxx         gbk     
    if (url.indexOf('http://example.com/js/xxx') === 0) {
      return 'gbk';
    }

    //       utf-8   
    return 'utf-8';

  }
});

ヒント
複数構成の自動連結seajs.configは複数回実行できます.実行するたびに、構成項目がマージされます.
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']
});

上の2つのconfigが実行された結果は、次のとおりです.
 alias = {
   'jquery': 'path/to/jquery.js',
   'underscore': 'path/to/underscore.js',
   'a': 'path/to/biz/a.js'
 };

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

すなわち,configは存在しないものを自動的にマージし,存在するものを上書きする.
プラグインの構成
プラグインはSeaに与えることができる.jsは構成項目を追加します.詳細なプラグインを参照してください.
プロファイル
構成はhtmlページに直接書くことも、独立してファイルになることもできます.
config.js
seajs.config({
  ...
});

独立して1つのファイルにする場合、scriptラベルを使用してページに同期して導入されます.
よく使われるコンフィギュレーション項目はaliaspathsbaseで、その他のコンフィギュレーション項目が必要な場合は、ドキュメントを調べて使用します.