Javascript Require.js在优化后继续加载未压缩的模块
我已经运行了r.js优化器,它似乎工作正常。我遇到的唯一问题是,当压缩优化版本加载时,它会继续加载所有未压缩的模块。为什么会发生这种情况 build.js config.jsJavascript Require.js在优化后继续加载未压缩的模块,javascript,optimization,requirejs,r.js,Javascript,Optimization,Requirejs,R.js,我已经运行了r.js优化器,它似乎工作正常。我遇到的唯一问题是,当压缩优化版本加载时,它会继续加载所有未压缩的模块。为什么会发生这种情况 build.js config.js require.config({ baseUrl: '/javascript/libs', urlArgs: 'v=' + (new Date()).getTime(), enforceDefine: false, paths: { collections: '../collections',
require.config({
baseUrl: '/javascript/libs',
urlArgs: 'v=' + (new Date()).getTime(),
enforceDefine: false,
paths: {
collections: '../collections',
etc: '../etc',
models: '../models',
views: '../views',
templates: '../../templates',
backbone: 'backbone',
underscore: 'lodash',
'underscore.string': 'underscore.string',
},
shim: {
backbone: {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
underscore: {
deps: ['jquery', 'underscore.string'],
exports: '_'
},
}
});
配置的加载方式如下所示:
<script data-main="/javascript/portal-v2.0.0.js" src="/javascript/libs/require.js"></script>
您开始使用以下内容加载应用程序:
<script data-main="/javascript/portal-v2.0.0.js" src="/javascript/libs/require.js"></script>
当RequireJS到达require(['views/portal/main'])
时,它会查找并加载单个模块,而不是包
这里的解决方案是将以下内容添加到运行时配置中:
bundles: {
'/javascript/portal-v2.0.0': ['views/portal/main'],
}
这告诉RequireJS,当您需要名为views/portal/main
的模块时,它应该在名为/javascript/portal-v2.0.0
的模块所在的位置查找该模块。(请记住从数据主站
中删除.js
扩展名)您不需要列出portal-v2.0.0
中的所有模块,只列出您需要从外部portal-v2.0.0
中列出的模块。请注意,对于您的其他捆绑包也是如此,如果它们的任何模块需要在它们之外,您必须在适当的捆绑包设置中列出这些模块
您还应该查看removeCombined
以从输出目录中删除单个文件,并只保留您的优化包。谢谢Louis,我将尝试一下,并让您知道它是如何运行的。
<script data-main="/javascript/portal-v2.0.0.js" src="/javascript/libs/require.js"></script>
require(['./config'], function() {
return require(['views/portal/main']);
});
bundles: {
'/javascript/portal-v2.0.0': ['views/portal/main'],
}