2

私は最初のJavaScriptベースのWebアプリケーションに取り組んでおり、調査してきたいくつかの異なるフレームワークを活用したいと考えていましたが、すべての異なるライブラリを適切にロードするのに多くの問題があります。バックボーンとアンダースコア、およびTwitter Bootstrapに含まれているjavascript(CSS / HTMLスキャフォールディングに使用しています)を使用しようとしています。これは、すべてのスクリプトをロードするための私のやっかいな試みですが、require.jsから発生するfirebugエラーがまだ発生しています

提案された回答に従って、セットアップを編集しました。私のindex.htmlでは:

<script data-main="../scripts/main.js" src="../scripts/require.js"></script>

そしてmain.jsで:

require.config({ 
    // Require is defined in /scripts, so just the remaining path (and no ext needed)
    'paths': {
        "bootstrap": "scripts/bootstrap",
        "jquery": "scripts/jquery",
        "underscore": "scripts/underscore",
        "backbone": "scripts/backbone"
},
'shim': 
{
    backbone: {
        'deps': ['jquery', 'underscore'],
        'exports': 'Backbone'
    },
    underscore: {
        'exports': '_'
    }
}   
}); 

require([
    'jquery',
    'bootstrap',
    'underscore',
    'backbone'
], 
function(bootstrap, $, _, Backbone){

    Person = Backbone.Model.extend({
        initialize: function () {
            alert("Welcome to this world");
        }
    });

    var person = new Person;

}); 

しかし、このリンクhttp://requirejs.org/docs/errors.html#scripterrorを指すrequire.jsからまだスクリプトエラーが発生しています

4

3 に答える 3

3

一見すると、RequireJSのセットアップのように見えます。これを見てください:https ://github.com/jcreamer898/RequireJS-Backbone-Starter

スクリプトを本文で定義する必要はありません。スクリプトはRequireを介してロードする必要があるため、次のようになります。

メインのindex.html:

<script src="path/to/require.js"  data-main="scripts/app">

次に、参照は次のdata-mainようなものを指します。/scripts/app.js

require.config({ 
    // Require is defined in /scripts, so just the remaining path (and no ext needed)
    'paths': {
        "bootstrap": "libraries/bootstrap"
        "jquery": "libraries/jquery",
        "underscore": "libraries/underscore-min", 
        "backbone": "libraries/backbone-min"
    },
    'shim': 
    {
        backbone: {
            'deps': ['jquery', 'underscore'],
            'exports': 'Backbone'
        },
        underscore: {
            'exports': '_'
        }
    }   
    }); 

require([
    'bootstrap',
    'jquery',
    'underscore',
    'backbone'
], 
function(bootstrap, $, _, Backbone){

    // Start your application here...

});  
于 2013-01-16T14:32:08.707 に答える
1

RequireJSでは、<script />タグに含める必要がある唯一のライブラリはですrequire.js。さらに、RequireJSによってロードされる「メイン」javascriptファイルを指定する必要があります。

<script data-main="scripts/main.js" src="scripts/require.js"></script>

次に、メインファイルは他のライブラリをロードする必要があります。

requirejs(['jquery','backbone'], function ($,Backbone) {
    //...
});

RequireJS APIのドキュメントを読み、例に従うことをお勧めします。

于 2013-01-16T14:31:09.797 に答える
0

初めてのJavascriptプロジェクトになるために、非常に多くのコンポーネント(それぞれが学習する概念を備えている)から始めているのではないかと誰も指摘していません。私は以前、本当に単純なプロジェクトで各ライブラリを個別に調べて、それらをある程度経験し、それらが何をするのかを明確に理解したら(ドキュメントが常にそれを提供するとは限りません)、それらすべてを組み合わせ始めることができます。

おそらくあなたが探していた答えではありませんが、ここで話しているのは私の経験です。幸運を!

于 2013-01-16T14:37:40.400 に答える