在 RequireJS 环境下同时使用 Lodash 和 Underscore
Using Lo-Dash and Underscore simulatenously in RequireJS environment
在 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'
}
});
这样两个库可以同时使用,互不干扰
与普遍的看法和说法相反,Lo-Dash 并不是 Underscore 的完美替代品。
您已经提到的路径解决方案是一个选项(我认为更好)。我知道另一种方法,但我不一定认为它更好,因为它更具欺骗性。您可以重新映射 "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'
}
}
});
虽然这种方法有一些缺点。有一些很酷的东西。即能够重新映射第三方依赖项可能认为包是什么(如果这是一个问题)。
有关地图工作原理的更多信息,请查看:http://requirejs.org/docs/api.html#config-map
在 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'
}
});
这样两个库可以同时使用,互不干扰
与普遍的看法和说法相反,Lo-Dash 并不是 Underscore 的完美替代品。
您已经提到的路径解决方案是一个选项(我认为更好)。我知道另一种方法,但我不一定认为它更好,因为它更具欺骗性。您可以重新映射 "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'
}
}
});
虽然这种方法有一些缺点。有一些很酷的东西。即能够重新映射第三方依赖项可能认为包是什么(如果这是一个问题)。
有关地图工作原理的更多信息,请查看:http://requirejs.org/docs/api.html#config-map