1. ホーム
  2. javascript

[解決済み] 匿名のdefine()モジュールの不一致

2022-02-09 14:46:23

質問

を閲覧すると、このエラーが表示されます。 ウェブアプリ を初めて使用します(通常はキャッシュを無効にしたブラウザで使用します)。

<ブロッククオート

エラーです。Mismatched anonymous define() module: function (require) {...

HTML :

<html>
   .
   .
   .
   <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
   <script> var require = { urlArgs: "v=0.4.1.32" }; </script>
   <script data-main="assets/js/main" src="assets/js/libs/require.js"></script>
   <script src="assets/js/ace/ace.js?v=0.4.1.32"></script>
   </body>
</html>

JS :

$(function () {
    define(function (require) {
        // do something
    });
});

このエラーの意味と原因を正確に知っている人はいますか?

ソースファイル , a ショートディスカッション githubのissueページでこの件について

解決方法は?

AlienWebguyが言ったように、ドキュメントにしたがってください。 require.jsは爆発する可能性があります。 もし

  • 匿名定義がある(" 文字列 ID を持たずに define() を呼び出すモジュール ")を独自のスクリプトタグで作成します(実際にはグローバルスコープの任意の場所を意味すると思われます)。
  • 名前が競合するモジュールがある
  • ローダープラグインや匿名モジュールを使用しているが、それらをバンドルするためにrequire.jsのオプティマイザを使用していない。

browserifyでビルドしたバンドルをrequire.jsのモジュールと一緒にインクルードする際に、この問題が発生しました。解決策は、以下のどちらかでした。

A. scriptタグで非require.jsのスタンドアロンバンドルを読み込む。 前に require.jsがロードされる、または

B. (scriptタグの代わりに)require.jsを使用して読み込む。