2

jsファイルを非同期でロードするためにcurlまたは(両方を評価)を使用しています。requireプロトタイピングアプリで5つのjsファイルを使用しています。

jquery.min.js // off of CDN
Bacon.js // reactive programming tool
curl.js  // js loader
index.coffee // page specific
foo.coffee // app specific

OK、それで私はビルドindex.coffeeしてfoo.coffee、それでそれらはAMD互換ではないと確信しています。が間違っている可能性がありfoo.coffeeます

if module? && module.exports?
  module.exports = Foo

最後に。

jsファイルを見て「はい、AMD」または「いいえ、AMDではありません」と言うにはどうすればよいですか?

4

2 に答える 2

1

define(AMDの署名を探します。それはかなり確実な賭けです。残念ながら、ファイル内のほぼどこにあってもかまいません。通常、上部または下部にあります。AMDモジュールにはさまざまなバリエーションがあり、いくつかのUMDモジュール形式もあります:https ://github.com/umdjs/umdおよびhttps://gist.github.com/unscriptable/4118495

Fwiw、curl.jsで生のCommonJSモジュールを使用することもできます。CJSモジュールをフォルダーに配置し、それがCJSモジュールを使用するパッケージであることをcurlに通知する必要があります。

curl.config({
    packages: [
        { name: 'foo', location: 'path/to/foo-folder', main: 'foo',
            config: { moduleLoader: 'curl/loader/cjsm11' }
        },
        { name: 'curl', location: 'path/to/curl/src/curl', main: 'curl' }
    ]
});

curl / loader / cjsm11の場所をcurlに指示するには、curlパッケージ(またはパス)が必要です。

于 2013-03-06T20:35:29.103 に答える
0

AMDは、コードがロードされた時点ではなく、必要に応じてコードを評価することを意味します。したがって、ダウンロード直後にコードが実行される場合、AMDではありません。ラッパーがあり、コードを要求に応じて実行できる場合は、AMDモジュールのように機能します。

正確なAMDAPIを探している場合defineは、ファイルの先頭にある単語を検索する必要があります。

于 2013-01-25T17:29:01.413 に答える