1

私は大きなバックボーン アプリ (多くのビュー、モデル、コレクション) を構築し、モジュールの読み込みに require.js を使用しました。すべてが期待どおりにスムーズに機能します。

今、私はこのアプリをネットに送りたいと思っていますが、すべてを (単一の?) ファイルに圧縮することで、ネットワーク リクエストを最適化したいと考えています。Require.JS Optimizer について読み、node.js をインストールして、ビルド ファイルを作成しました。これらは私のテストです:

  1. モジュールセクションで単一のモジュールを指定せずにビルドファイルを作成します->すべてのjsファイルが醜い状態で、ソースアプリのコピーを取得します。アプリケーションは動作しますが、ネットワーク リクエストの観点からは何も変わっていないようです。

  2. 単一のモジュール (つまり、私の main.js ファイル) を使用してビルド ファイルを作成します --> ソース アプリのコピーを取得します。すべての js ファイルは見苦しく、すべての依存関係が含まれていると思われる 1 つの巨大な新しい main.js ファイルがあります。 (つまり、すべての使用済みファイル)。これでネットワーク要求の問題は解決しますが、アプリがまったく起動せず、奇妙なエラーが発生し始めます。

Require.JS オプティマイザーを使用する正しい方法はどれですか? #2だと思いますが、あなたの意見はどうですか?それが正しい方法である場合、それらのエラーを解決する方法を見つける必要があります...

ありがとう

編集

これは私のアプリのフォルダー構造です:

app
 |
  --- scripts
         |
         --- libs
         --- collections
         --- views
         --- models
         --- main.js
  --- styles
  --- templates
  --- index.htm

「app」フォルダーの同じレベルで、r.js と build.js を含むビルド フォルダーを作成しました。その内容は次のとおりです。

({
    //Directory relativa a questo file dove si trova l'app
    appDir: '../app',

    //Directory relativa ad appDir di dove si trovano i moduli
    baseUrl: 'scripts',

    //Percorso verso il file main
    mainConfigFile: '../app/scripts/main.js',

    paths:
    {
        jquery: 'libs/jquery/jquery-min',
        jqueryui: 'libs/jqueryui/jquery-ui-1.10.2.min',
        underscore: 'libs/underscore/underscore-min',
        backbone: 'libs/backbone/backbone-min',
        kendo: 'libs/kendo/kendo.web.min',
        kendo_it: 'libs/kendo/amd/kendo.culture.it.min',
        relational: 'libs/relational/backbone-relational',
        nested: 'libs/nested/backbone-nested-v1.1.2.min',
        rivets: 'libs/rivets/rivets.min',
        i18n: 'libs/i18next/i18next.amd.withJQuery-1.6.3',
        jvalid: 'libs/jqueryvalidate/jquery.validate.min',
        chartjs: 'libs/chartjs/chart.min',
        toastr: 'libs/toastr/toastr.min',
        templates: '../templates'
    },

    //Where to save the output
    dir: '../app-build',

    modules:
    [
        {
            name: 'main'
        }
    ]


})

次のコマンドを使用してビルド プロセスを開始します。

node r.js -o build.js

「コンパイル済み」の main.js を実行すると、次のエラーが返されました。

Uncaught Error: Mismatched anonymous define() module

何か案は?

4

1 に答える 1