【发布时间】:2016-02-11 01:51:45
【问题描述】:
我的应用程序中有几个不同的应用程序。一些较新的仅使用 Backbone 而较旧的使用 Marionette,因为 Marionette 使用 Backbone,两者都使用 Underscore。
现在我想更新下划线,1.6.0 -> 1.8.3。
所以我在 require.config 中添加了一个旧的下划线
paths: {
'underscore': 'vendor/underscore/underscore',
'underscore-1.6.0': 'vendor/underscore-1.6.0/underscore',
'backbone': 'vendor/backbone/backbone',
'backbone-1.1.2': 'vendor/backbone-1.1.2/backbone',
'marionette': 'vendor/marionette/lib/core/amd/backbone.marionette',
'backbone.wreqr': 'vendor/backbone.wreqr/lib/backbone.wreqr',
'backbone.babysitter': 'vendor/backbone.babysitter/lib/backbone.babysitter',
},
shim: {
'underscore-1.6.0': {
exports: 'underscore'
},
'backbone-1.1.2': {
deps: ['underscore-1.6.0'],
exports: 'backbone'
},
'backbone.babysitter': {
deps: ['backbone-1.1.2', 'underscore-1.6.0']
},
'backbone.wreqr': {
deps: ['backbone-1.1.2', 'underscore-1.6.0']
},
'marionette': {
deps: ['backbone-1.1.2']
}
},
Marionette 依赖于 Wreqr 和 Babysitter,而后者又依赖于 underscore 1.6.0(和 Backbone 1.1.2)。我的解决方案是为它们都添加 deps。
我的问题是当我尝试 require('marionette');由于 wreqr 和 babysitter 都要求“下划线”和“主干”,他们得到的不是“下划线-1.6.0”和“主干-1.1.2”。
我能否确定 Wreqr 和 Babysitter 应该使用哪个版本的下划线和主干“主干”和“下划线”?
还有其他好的方法吗?
谢谢!
- 约翰
【问题讨论】: