Don*_*lor 8 javascript amd requirejs underscore.js lodash
在RequireJS环境中,允许某些AMD模块使用Lo-Dash而其他人同时使用Underscore的最佳方法是什么?
我能够相当简单地解决问题.具体使用lodash需要Lo-Dash的模块的路径和underscore需要"下划线"的模块:
require.config({
paths: {
'underscore': 'path-to-my-underscore-file',
'lodash': 'path-to-my-lodash-file'
}
});
Run Code Online (Sandbox Code Playgroud)
这样,两个库可以同时使用而不受任何干扰.
与流行的信念和主张相反,Lo-Dash并不是Underscore的完美替代品.
你提到的路径解决方案是一个选项(我认为更好).我知道另一种方法,但我不一定认为它更好,因为它更具欺骗性.您可以重新映射"lodash"和"下划线"对于各种包的含义.
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'
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个外观,你也可以做这样的事情:
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'
}
}
});
Run Code Online (Sandbox Code Playgroud)
虽然这种方法存在一些负面影响.有一些很酷的东西.即能够重新映射第三方依赖关系可能认为包是什么(如果这是一个问题).
有关地图如何工作的更多信息,请查看:http://requirejs.org/docs/api.html#config-map
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |