2017-06-14 83 views
0

我有一些文件,如RequireJS圖配置,的多個文件

test/test1, 
test/test2, 
test/test3 

,我想有路徑重命名爲

newtest/test1, 
newtest/test2, 
newtest/test3 

所以,如果我們試圖要求上述文件,然後它會指向新的道路。

在要求,一對一的映射是存在的,但不知道,如果這樣的事情是可以實現的,

require.map = { 
    "test/*": "newtest/*", 
} 

任何幫助:)

+0

您是否反對在您的文件中重新命名需要使用來自atom或您選擇的文本編輯器的正則表達式? – user2662833

+0

重命名是不可能的,因爲有其他庫正在使用提供的路徑,我們不想改變它們。相反,在我的情況下更復雜的情況下,所以需要找出映射的方式。 –

回答

0

map配置選項支持映射模塊前綴。這裏有一個例子:

require.config({ 
    map: { 
    "*": { 
     "foo": "bar" 
    } 
    } 
}); 

define("bar/x", function() { 
    return "bar/x"; 
}) 

require(["foo/x"], console.log); 

最後require呼叫嘗試加載foo/x將加載bar/x

這和map的模式匹配一​​樣好。 RequireJS不支持在其中放置任意模式。使用"test/*": "newtest/*"不起作用。我在map中使用的"*"不是一種模式。這是一個硬編碼的值,意思是「在所有模塊中」,並且發生看起來像一個glob模式。所以上面的map表示「在所有模塊中,當需要foo時,代之以加載bar」。

+0

這意味着,我手動需要分別映射每個文件。 –