在RequireJS环境中,允许一些AMD模块使用Lo-Dash,同时允许其他模块使用Underscore,这种情况下最好的方法是什么?
我能够相对简单地自己解决这个问题。具体来说,对于需要 Lo-Dash 的模块,请使用 lodash
路径;对于需要 "underscore" 的模块,请使用 underscore
。
require.config({
paths: {
'underscore': 'path-to-my-underscore-file',
'lodash': 'path-to-my-lodash-file'
}
});
你已经提到的路径解决方案是一个选项(我认为这是更好的选项)。我知道另一种方法,但我不一定认为它更好,因为它更具欺骗性。你可以重新定义各个软件包中“lodash”和“underscore”的含义。
requirejs.config({
paths: {
'underscore': 'path-to-my-underscore-file',
'lodash': 'path-to-my-lodash-file'
},
map: {
'some/lodash_compatible_module': {
'underscore': 'lodash'
},
'some/lodash_compatible_folder': {
'underscore': 'lodash'
},
'some/oldmodule_or_folder': {
'underscore': 'underscore'
}
}
});
requirejs.config({
paths: {
utils: 'lodash',
'underscore': 'path-to-my-underscore-file',
'lodash': 'path-to-my-lodash-file'
},
map: {
'some/lodash_compatible_module': {
'utils': 'lodash'
},
'some/lodash_compatible_folder': {
'utils': 'lodash'
},
'some/oldmodule_or_folder': {
'utils': 'underscore'
}
}
});