0

シングルページアプリでrequirejsを使用していますが、アプリの速度が上がるため、すべてのモジュール、ベンダーライブラリ(jQuery、アンダースコア、バックボーン)を1つのファイルにまとめることができるかどうか疑問に思っています。

app
  css
  html
    homepage
       main.html
       login.html
       signup.html
  js
    build.js
    libs
        jquery.js
        backbone.js
        underscore.js
        require.js
    modules
       collections
       models
       views
       main
          main.js
          app.js
          router.js
app-build

私のビルド構成ファイルは現在次のとおりです。

({
    appDir: '../',
    baseUrl: 'js/modules',
    mainConfigFile: 'modules/main/main.js',
    dir: '../../app-build',
    optimize: 'uglify',
    uglify: {
        toplevel: true,
        ascii_only: true,
        beautify: true,
        max_line_length: 1000
    },
    preserveLicenseComments: true,
    logLevel: 0
})
4

1 に答える 1

4

私は確かにこの分野の専門家ではありませんが、確かに主に試行錯誤によって、私のプロジェクトの1つでこれを機能させることができました。

appdirどちらか/両方を作成し、自分のコードとライブラリコードの両方を含むディレクトリにする必要があることがわかりましbaseUrlた。あなたの場合、これは./app/jsまたは./app(テンプレートを組み合わせるかどうかによって異なります)のいずれかになります。

また、さまざまなライブラリ関数へのパスも提供しました。

それが機能するようになったので、私は本当に戻って、実際に何が必要で、何がカーゴカルトコーディングであったかを確認する必要があります。今のところ、私は書くべきより多くの差し迫ったコードを持っています...

あなたの興味のために、私は私のオプションを含めます:私はnode.jsからを介して最適化していることに注意してくださいrjs.optimize(...)

var options = {
  baseUrl: "./site/app",
  appdir: "./site/app",
  name: "js/main",
  out: "main-built.js",
  paths: {
    jQuery: 'js/libs/jquery/jquery',
    Underscore: 'js/libs/underscore/underscore',
    Backbone: 'js/libs/backbone/backbone',
    Handlebars: 'js/libs/handlebars/handlebars',
    templates: 'templates'
  }
};

私はこれが正しい答えであるとは思っていませんが、うまくいけば、それはあなたをどこか役に立つ場所に導くでしょう。

于 2012-05-30T12:24:52.333 に答える