1

RequireJSを使用してアプリケーションを開発しました。最適化レイヤーはありません。各ファイルを個別にダウンロードする必要があります。外側のマークアップは次のとおりです。

<!DOCTYPE html>
<html lang="en">
  <head>
     <script type="text/javascript">
       var require = {
         //some basic config
       };
     </script>
  </head>
  <body>
     <!--snip-->
  </body>
  <script type="text/javascript" data-main="main" src="scripts/lib/require.min.js"></script>
</html>

これは問題なく機能しますが、100 個以上のファイルを使用すると、読み込み時間が実際に長くなります。それでは、 r.js の最適化を紹介しましょう。node と r.js を使用して結合ファイルを作成し、 に変更data-main="main"data-main="_build/main"ます。

次のエラーが表示されます。

エラー: 匿名の define() モジュールが一致しません: (crossroads.js の本体全体)

考え:

私はまだ掘り下げていますが、誰かがここで時間を節約してくれることを願っています。

4

1 に答える 1

1

TL;DR; r.js ビルドを行っているため、圧縮されていないバージョンの crossroads.js を使用してください。ソース ファイルは既に圧縮されています。

crossroads は名前のない定義を使用し、カスタムUMD (ユニバーサル モジュール定義) にラップされます。r.js は適切なモジュール名を追加できないため、縮小版はうまく機能しません。

縮小前:

(function(define){define(["signals"], ...

縮小後:

(function(a){a(["signals"], ...

r.js はa意味を理解できず、呼び出しのみを検索しdefineます。

于 2013-01-17T01:25:03.903 に答える