6174 / 6174/pagedown

Support asynchronous module definition

オープン
#2 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
auto-migrated Priority-Medium Type-Enhancement
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。