花了一整天的时间在这上面,我认为是时候大喊大叫了。我正在使用 require.js 在我的主干应用程序中包含模块。这就是我所拥有的:
我的requirejs配置:
paths:
jquery: "backbone/initializers/jquery_loader"
jqueryui: "backbone/initializers/jqueryui_loader"
modules:
- name: 'application'
- name: 'jquery'
exclude: ['application']
- name: 'jqueryui'
exclude: ['application', 'jquery']
- name: 'email'
exclude: ['application']
- name: 'department_home'
exclude: ['application']
priority: ['application', 'jquery', 'jqueryui']
我的 jquery_loader:
define ["jquery.min"], () ->
jQuery = $
jQuery.noConflict(true)
我的 jqueryui_loader:
define ['jquery.ui.all'], () ->
我的电子邮件模块:
define ['marionette', 'jqueryui', 'tags'], (Marionette, ui, tags) ->
我的部门主页模块
define ['marionette', 'jqueryui', 'dept_tags'], (Marionette, ui, tags) ->
一切都按预期工作并编译,但也许我不明白或者我遗漏了什么,电子邮件模块在点击事件上动态加载,并且它包含 jqueryui,我相信这只是一个 r.js 优化文件。
现在我在加载电子邮件模块后执行另一个单击事件,我看到部门模块中也有 jquerui,两者都是 90KB,我期望部门模块使用电子邮件模块已经加载的 jqueryui。
感谢你的帮助!