2013-05-30 57 views
3

忽略了一個事實,這可能不是一個好主意是有可能得到requirejs使用兩種不同的路徑即requirejs多個路徑之一庫

require.config({ 
    paths: { 
     'ko': '../Lib/knockout-2.1.0.debug', 
     'knockout': '../Lib/knockout-2.1.0.debug', 
    } 
}); 

或可能還有一些其他的方式來引用一個庫?目前,它的抱怨

的原因是我們有在哪裏,因爲我們使用「淘汰賽」外部的依賴關係一些外部庫「KO」

回答

4

這聽起來像一個map configuration是一個更好的方法在這裏。如果您的模塊需要「ko」,但其他模塊需要「淘汰賽」,那麼只需將'ko'映射爲模塊的'淘汰賽'即可。

require.config({ 
    paths: { 
     'knockout': '../Lib/knockout-2.1.0.debug', 
    }, 
    map: { 
     '*': { 'ko': 'knockout' } 
    } 
}); 

如果只有某些模塊的名稱要重新映射,在上面的例子與模塊名稱替換「*」。

或者,如果「裏爲我們所用‘KO’」你也意味着window.ko,你可以這樣做,而不是:

require.config({ 
    paths: { 
     'knockout': '../Lib/knockout-2.1.0.debug', 
    } 
}); 

define('ko', ['knockout'], function (punch) 
{ 
    window.ko = punch; 
    return punch; 
});