Sea.jsマニュアルとドキュメント

2253 ワード

Sea.jsマニュアルとドキュメント
ホームページ|索引
目次
  • CommonJS
  • とは
  • CommonJSモジュール
  • とは
  • なぜパッケージモジュール
  • CommonJSとは?
    CommonJSはJavaScript生態圏の構築を志す組織です.メールリストがあり、多くの開発者が参加しています.コミュニティ全体は、サービス側でもブラウザ側でも、JavaScriptプログラムの移植性と交換性の向上に力を入れています.
    CommonJSモジュールとは?
    JavaScriptにはモジュールシステムが内蔵されていません(どうせ今はありません)、CommonJSは独自のものを作りました.従来のCommonJSモジュールは以下の通りです.
    math.js:
    exports.add = function() {
      var sum = 0, i = 0, args = arguments, l = args.length;
      while (i < l) {
        sum += args[i++];
      }
      return sum;
    };
    

    increment.js:
    var add = require('math').add;
    exports.increment = function(val) {
      return add(val, 1);
    };
    

    program.js:
    var inc = require('increment').increment;
    var a = 1;
    inc(a); // 2
    

    モジュールをカプセル化する理由
    上記のコードをよく見ると、requireが同期していることに気づきます.すなわち、モジュールシステムは、requireメソッド呼び出しが返される前に、所与のモジュールが利用可能であるか否かを判定し(初期化する).
    しかし、これはブラウザ側で問題が多い.
    ブラウザ側では、JavaScriptをロードするのに最適で、最も容易な方法はdocumentのラベルを することです.しかし、スクリプトラベルは まれつき であり、 のCommonJSモジュールはこのような では にロードできません.
    の1つは、サーバ コンポーネントを し、モジュールコードを に し、モジュールをその リストとともにブラウザ に すことです.これは ですが、 のコンポーネントをインストールし、 の アーキテクチャを する があります.
    もう1つの は、モジュール を テンプレートでカプセル することです.
    define(function(require, exports, module) {
    
      // The module code goes here
    
    });
    

    このテンプレートコードは、モジュールコードの にモジュールコードを に し、 リストを に できるようにする を します.
    を にするためには,いくつかの な を する がある.
    の のモジュールをカプセル すると、 のようになります.
    math.js:
    define(function(require, exports, module) {
      exports.add = function() {
        var sum = 0, i = 0, args = arguments, l = args.length;
        while (i < l) {
          sum += args[i++];
        }
        return sum;
      };
    });
    

    increment.js:
    define(function(require, exports, module) {
      var add = require('math').add;
      exports.increment = function(val) {
        return add(val, 1);
      };
    });
    

    program.js:
    define(function(require, exports, module) {
      var inc = require('increment').increment;
      var a = 1;
      inc(a); // 2
    });
    

    FlyScriptのドキュメントからいくつかの があります.Kevin H.Smithに します.