2012-05-21 50 views
3

我目前正在構建一個應用程序,其中前端正在做很多繁重的工作。 爲了保持一切整齊有序,我想使用requirejs。但是,要使用require.js,其所有模塊都應該符合AMD標準。製作requirejs模塊AMD兼容

這意味着每當我使用的模塊更新時,我需要等待AMD兼容版本出現或自己創建一個(我目前不知道該怎麼做)。

這是一個真正的關閉。

看着這個https://github.com/jrburke/backbone/blob/optamd/backbone.js在我看來,製作像Backbone AMD兼容模塊並不像將插件封裝到通用函數那樣簡單。

是否有一個或多或少的直接方式使模塊符合AMD標準?

+0

退房更新的答案, /或https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim –

回答

2

那麼他的版本是非常防彈的,所以它會在各種情況下運行。既然你知道你正在運行的環境,什麼是可用/什麼不是,那麼你可以做出一些假設,讓你做更直接的事情。

看看這個要點,我讓bacbkonejs的AMD模塊假設的jQuery,下劃線和定義是在全球範圍內,我不需要CommonJS的支持: https://gist.github.com/2762813

我只是添加

define(function() { 
    var obj = {}; 
    obj._ = window._; 
    obj.jQuery = window.jQuery; 

到頂端,

.call(obj); 
    return obj.Backbone; 
}); 

到底部。


感謝@SimonSmith將UseJS引入我的注意。 UseJS是一個AMD加載器插件,它可以讓你在不修改它們的情況下加載非amd格式的模塊。我沒有用自己用還,但它看起來很有希望:https://github.com/tbranyen/use.js/

UPDATE

RequireJS 2.0現在直接支持你正在尋找通過墊片CONFIGS功能:https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim

+0

太棒了!謝謝!我期待着ES6,這確實需要標準化。 – nimrod

+0

順便說一句,我想你的意思是返回obj._不返回obj.Backbone :) – nimrod

+0

更簡單的使用use.js - https://github.com/tbranyen/use.js/ –

相關問題