Support asynchronous module definition
- 主要言語
- JavaScript
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
``````
Supporting asynchronous module definition [1] would allow to use
CommonJS-compliant asynchronous javascript loaders like requirejs [2] on the
client side.
This also allows to declare dependencies between modules, and to ensure that
some module is loaded before an other.
This would look like this for Markdown.Converter:
``` Javascript
define(function() {
// return Converter here
});
``````
And for Markdown.Editor:
``` Javascript
define(['Markdown.Converter'], function(Converter) {
// return Editor here
});
```
And in the client code:
``` Javascript
require(['Markdown.Converter', 'Markdown.Editor'], function(Converter, Editor) {
// ...
});
```
With non-CommonJs compat:
``` Javascript
var Markdown;
function doExport(factory) {
if (typeof 'define' === 'function' && typeof 'require' === 'function') {
define.call(this, factory);
} else {
Markdown.Converter = factory();
}
}
doExport(function() {
// ... return Converter
});
```
[1] http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition
[2] http://requirejs.org/
```
Original issue reported on code.google.com by `arnaud.lb` on 4 Aug 2011 at 5:09
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
この issue では、Markdown コンバーターライブラリである Pagedown に非同期モジュール定義(AMD)のサポートを追加することを提案しています。まず、ソースファイル内の既存のモジュール構造を調べ、Markdown.Converter と Markdown.Editor が現在どのように定義されているかを理解します。次に、requirejs の define() や require() などの AMD パターンを調査し、後方互換性を維持しながら、ライブラリを AMD 経由でも任意にエクスポートできるよう変更します。requirejs を使ってモジュールを非同期に読み込むサンプルページを作成してテストします。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript
- 領域
- frontend
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100