Javascript Require.js在优化后继续加载未压缩的模块

Javascript 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',

我已经运行了r.js优化器,它似乎工作正常。我遇到的唯一问题是,当压缩优化版本加载时,它会继续加载所有未压缩的模块。为什么会发生这种情况

build.js

config.js

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'],
}