3

私のアプリは正常に動作していますが、今日は r.js に渦を巻かせることにしました。

今、私のツリー(その一部)は次のようになります

  • index.html
  • 資産
    • js
      • require.js
      • r.js
      • main.js
      • コンポーネント
        • アンダースコア.js
        • jquery.js
        • backbone.js
        • jqueryuijs
      • モデル
        • 選挙.js
      • コレクション
        • 選挙.js
      • ビュー
        • app.js
        • 選挙.js

私が持っているindex.htmlファイルに <script data-main="assets/js/main" src="assets/js/require.js"></script>

これはmain.jsです

require.config({
    paths: {
        jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
        underscore: 'components/underscore/underscore-min',
        backbone: 'components/backbone/backbone-min',
        jqueryui: 'components/jqueryui/jquery-ui-1.10.1.custom.min'
    },

    shim: {
        'backbone': {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },

        'jqueryui': ['jquery']
    }

});

require(['views/app'], function(App) {

    var router = Backbone.Router.extend({
        routes: {
            '': 'root',
            'year(/:year)': 'year'
        },

        root: function() {
            new App();
        },

        year: function(year) {
            new App({
                year: year
            });
        }
    });

    r = new router();
    Backbone.history.start({
        // pushState: true
    });
});

私のモジュールでは、assets/js/views/election.jsまたはのようなファイルを参照しますassets/js/models/election.js

しかし、このbuild.jsでr.jsを実行すると

({
    // baseUrl: "assets/",
    paths: {
        jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
        underscore: 'components/underscore/underscore-min',
        backbone: "components/backbone/backbone-min",
        jqueryui: 'components/jqueryui/jquery-ui-1.10.1.custom.min'
    },
    name: "main",
    out: "main-built.js"
})

私は得るError: ENOENT, no such file or directory '/Users/alex/Dropbox/www/animated-elections/assets/js/assets/js/collections/elections.js'。パスに別のパスを追加する理由がわかりませんassets/js

4

3 に答える 3

0

メインファイルと同じフォルダーrequire.js、つまり. フォルダー内ではなく、フォルダーの横にありassetsます。

于 2013-03-05T16:37:27.347 に答える
0

このコードを build.js ファイルに追加します。

baseUrl: ".",
paths: {
    jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
    underscore: 'components/underscore/underscore-min',
    backbone: "components/backbone/backbone-min",
    jqueryui: 'components/jqueryui/jquery-ui-1.10.1.custom.min',
    'views/app': 'empty:',
    'views/election': 'empty:',
    //and so with others
},
name: "main",
out: "main-built.js"

よろしく.-

于 2014-10-10T15:07:11.203 に答える
0

r.js は、設定例で指定されているように、アプリ ディレクトリの兄弟ではなく、アプリ ディレクトリ内にあります。

私はこれをテストしていませんが、r.js はおそらく、すべてのモジュール呼び出しがその場所に関連していると想定しています。

于 2013-03-05T16:38:25.707 に答える