Skip to content

モジュール

CommonJSモジュールローディングフレームワーク

モジュール・ローディングの多様なユースケースに単一のフレームワークで対応するのは難しいので、ビルトインのモジュール・ローディング・フレームワークはありません。Duktapeの配布物には、例えば、いくつかのオプションのモジュール・ローダー・ フレームワークが含まれています。

  • module-duktape: CommonJS modules version 1.1.1 をベースにしたDuktape 1.x 互換ローダーで、module.exportsといくつかのDuktape固有のモジュール・オブジェクトのプロパティを追加でサポートしています。内部構造はmodules.rstで説明されており、例としてはモジュールの使い方を参照してください。このローダーはDuktape 1.xではビルトインでしたが、Duktape 2.xではオプショナルな追加機能として移動しました。
  • module-node: Node.jsのモジュールに対応したローダーです。Node.js的なモジュールの使い方の例を参照してください。

また、独自のモジュール・ローダーを一から実装することもできます。上記のローダーは、DuktapeのパブリックAPIを使って実装されており、内部への特別なアクセスはありません。

モジュール・ローダーは require() 関数を提供し、以下のようにモジュールをロードすることができます。

javascript
var mod = require('foo/bar');
mod.hello();

ローダーは、実際のモジュール解決やロードをユーザー提供のフックに抽象化し、様々な環境での組み込みを可能にします。例えば

  • ファイルシステムのない環境でも、仮想的な組み込みファイルの集合からモジュールをロードすることで、モジュールロードを利用することができます。
  • Babelなどを使って、ロード中にオンザフライのトランスパイルが可能です。

ES2015 モジュール

ES2015 のインポート/エクスポートと ES2015 モジュールは、現在サポートされていません。

C モジュール規約§。

DLL から C モジュールをロードして初期化するための推奨される (必須ではありませんが) C モジュール規約があります: c-module-convention.rst.