2013-03-29 58 views
1

所以在我的TODO應用程序中,我使用了Backbone和require.js。一切都很酷。我將所有模型,視圖,集合分隔爲單個文件並使用require.js加載它們。在我嘗試使用控制檯require.js優化器r.js將所有文件加入到一個文件之後。當我結果我得到一個文件與我所有的庫和類。但是,當我嘗試運行我遇到錯誤,骨幹未定義。我檢查了文件,並看到r.js產生下一件事: 1.首先它增加了骨幹源APP-built.js文件,並放在旁邊串後Backbone.js和Require.js工具r.js

define("lib/backbone", function(){}); 

因此,作爲結果我都在骨幹變量窗口,但在我的模塊中使用它require.js方式 define('models/todo',['jquery','underscore','lib/backbone'],function ($, _, Backbone) {

沒有全局和結果在我的模塊骨幹局部變量是未定義的。 與underscore.js相同的問題。 R.js以同樣的方式導入它。

所以問題。如何避免將來使用其他庫的問題,或者現在如何解決這個問題? SOme工藝?

+0

這部分我不清楚: 「沒有全球」。你可以改寫或擴大這個嗎?也許是一個錯字。 – explunit

回答

1

您可能需要使用Shim,因爲根據RequireJS的Backbone預計Backbone將位於基本url目錄中。在你的情況下,它似乎是在/ lib中。 Config Shim。根據您使用的RequireJS版本,您只需確保您使用的庫與AMD兼容。

在你requireJS配置:

shim: { 
    backbone: { 
    deps: ["underscore", "jquery"], 
    attach: "Backbone" 
    }, 
    underscore: { 
    attach: "_" 
    } 
} 
相關問題