モジュール
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.