私は大きなバックボーン アプリ (多くのビュー、モデル、コレクション) を構築し、モジュールの読み込みに require.js を使用しました。すべてが期待どおりにスムーズに機能します。
今、私はこのアプリをネットに送りたいと思っていますが、すべてを (単一の?) ファイルに圧縮することで、ネットワーク リクエストを最適化したいと考えています。Require.JS Optimizer について読み、node.js をインストールして、ビルド ファイルを作成しました。これらは私のテストです:
モジュールセクションで単一のモジュールを指定せずにビルドファイルを作成します->すべてのjsファイルが醜い状態で、ソースアプリのコピーを取得します。アプリケーションは動作しますが、ネットワーク リクエストの観点からは何も変わっていないようです。
単一のモジュール (つまり、私の 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
何か案は?