問題タブ [umd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Webpack バンドルがクラスを返さないのはなぜですか?
Webpackにバンドルされているクラスがそれぞれ独自のファイルにあります。バンドルをインポートして、Node とブラウザーの両方で使用できるようにしたいと考えています。
私のwebpackエントリファイル:
クラスの例:
ウェブパック構成:
しかし、それらを使用しようとすると、空のオブジェクトしか得られず、クラスの兆候はありません。
どこで間違ったのですか?
javascript - js - クロージャ コンパイラと UMD
次のような UMD パターンのコードがあります。
ADVANCED_OPTIMIZATIONS
そして、フラグを付けて Google Closure Compiler でこのコードをコンパイルしたいと思います。上記のコードに変更することはできません。このコードをコンパイルすると、Closure Compiler はそれroot.returnExports
が等しいことを認識せずwindow.returnExports
、コードを次のようにコンパイルします。
returnExports
もちろん、 (9行目)が定義されていないため、エラーがスローされます。jQuery 関数$('body').text(...);
は extern ファイルで宣言されているので、それは問題ではありません。
Closure Compiler と UMD pattern に関する別の質問がありました: Google Closure Compiler and UMD pattern ですが、それは役に立ちませんでした。
root.returnExports
Closure Compiler に等しいことを伝えるにはどうすればよいですwindow.returnExports
か?
ノート:
名前を保持するのではなく、またはのreturnExports
ような名前に変更したい。a
b
javascript - requireJS オプティマイザー - 2 つの匿名モジュールを 1 つの結合された .js ファイルに結合する
RequireJS optimizerを使用して、2 つの require amd モジュールを 1 つの combined.js javascript ファイルに結合しようとしています。
**この質問は、この質問と同じではありません:問題の解決策や詳細な説明がなく、reactJS のドキュメントに矛盾するアドバイスがいくつかある、Mismatched anonymous define() モジュール。
module1.js
module2.js
推奨されるグッド プラクティス
requireJS wiki およびその他のソースでは、各モジュールに名前を設定するのではなく、ID なしで匿名のままにしておくことをお勧めします: https://github.com/requirejs/requirejs/wiki/Updating-existing -libraries#anon
"通常、名前付きモジュールを登録するのではなく、匿名モジュールとして登録する必要があります... "
RequireJS オプティマイザー - モジュールを 1 つの js ファイルにまとめる
【build.js】
[定義.js]
【requireJSオプティマイザーを吐き出す】
RequireJS オプティマイザー - 出力 - combined.js
結合された.jsファイルとモジュールを読み込もうとしています
[index.html]
問題
結合された.jsファイルをロードするとき、コードで上記の各モジュールのID名を指定しない限り、常に同じエラーが発生します: define('module1', factory); ...
エラー:
追加情報
- すべてのファイルは現在、その UMD パターンを使用して requireJS で完全にロードされています。ただし、何かを変更する必要があるかどうかはわかりません。
- definition.js と combined.js は、モジュールごとに定義されたID 名を持つモジュールを明示的にロードしています。問題はここにあるかもしれません。
質問
- これらの匿名モジュールを1つの結合された.jsファイルに結合し、そのファイルをrequireJSでロードしてからモジュールを取得するにはどうすればよいですか?
- コードに何か問題がある可能性がありますか?
- requireJS オプティマイザーのドキュメントでは、匿名モジュールのロードをサポートしていると書かれていますが、私はそれを実行できませんでした。モジュールにID名を割り当てずにそれを行うことは本当に可能ですか?
私はそれを解決しようとして完全に絶望的になり、すでに多くのリソースを調べましたが、明確な答えを見つけることができませんでした. どうもありがとう