7

依存性注入を処理するために requirejs を使用して JavaScript アプリを作成しました。ファイルをコンパイルしましたが、スクリプトとして含めると明らかなエラーが発生します。

Uncaught ReferenceError: define が定義されていません

開発者が AMD ローダーを使用しないことにした場合、JavaScript アプリが AMD ローダーに依存しないようにしたいと考えています。ただし、アプリケーションが複雑なため、アプリの依存関係を処理するために使用したいと考えています。

JavaScript をコンパイルして AMD の依存関係を削除するコンパイラはありますか? 私は Grunt について少し話題になっているのを見てきましたが、これが Grunt の機能であるかどうかについての明確な答えは見つかりませんでした。

4

1 に答える 1

5

require/define の依存関係を完全に削除することはできませんが、大幅なパフォーマンスの低下をもたらさない、はるかに小さい shim に置き換えることができます。RequireJS に依存しないライブラリを他のユーザーに提供するにはどうすればよいですか? を参照してください。最適化ガイドのセクション:

RequireJS や AMD ローダーを使用しない可能性のある Web ページで使用するライブラリを構築している場合は、オプティマイザを使用してすべてのモジュールを 1 つのファイルに結合し、それらを関数にラップして AMD API shim を使用できます。これにより、すべての RequireJS に同梱されていないコードを出荷でき、AMD ローダーを使用せずにプレーンな Web ページで動作するあらゆる種類の API をエクスポートできます。

almondは非常に小さい AMD API shim であるため、RequireJS オプティマイザーを使用してすべてのモジュールを 1 つのファイルにビルドする場合に、require.js の代わりに使用できます。wrap ビルド構成オプションは、関数ラッパーをコードに配置します。または、追加のロジックを実行する必要がある場合は、独自のラッパーを提供できます。

于 2013-07-09T15:21:13.400 に答える