好的,所以我的问题是我希望能够自动删除我为 RequireJS 设置的 shim 配置的一部分;我没有加载整个缩小的 Bootstrap 文件,而是将其拆分为不同的插件,这样当我的应用程序使用较少的 Bootstrap 组件时,我就可以从文件大小减少中受益。例如:
require.config({
paths : {
jquery : 'vendor/jquery/jquery.min',
bootstrap : 'vendor/bootstrap-sass/js'
},
shim : {
'bootstrap/affix': { deps: ['jquery'], exports: '$.fn.affix' },
'bootstrap/alert': { deps: ['jquery'], exports: '$.fn.alert' },
'bootstrap/button': { deps: ['jquery'], exports: '$.fn.button' },
'bootstrap/carousel': { deps: ['jquery'], exports: '$.fn.carousel' },
'bootstrap/collapse': { deps: ['jquery'], exports: '$.fn.collapse' },
'bootstrap/dropdown': { deps: ['jquery'], exports: '$.fn.dropdown' },
'bootstrap/modal': { deps: ['jquery'], exports: '$.fn.modal' },
'bootstrap/popover': { deps: ['jquery'], exports: '$.fn.popover' },
'bootstrap/scrollspy': { deps: ['jquery'], exports: '$.fn.scrollspy' },
'bootstrap/tab': { deps: ['jquery'], exports: '$.fn.tab' },
'bootstrap/tooltip': { deps: ['jquery'], exports: '$.fn.tooltip' },
'bootstrap/transition': { deps: ['jquery'], exports: '$.support.transition' },
}
});
虽然r.js
优化器正确识别出我只是在使用bootstrap/dropdown
,但它仍然包含未出现在生产代码中的文件的 shim 配置。所以我的问题是我可以自动摆脱未使用的 shim 文件吗?我正在使用grunt-contrib-requirejs
实际优化并且对此没有任何问题。基于 Grunt 的解决方案会更好,但我对其他任何事情都持开放态度。谢谢。