我不得不通过bundle将一些脚本移动到同步加载,我想将这些脚本设置为已定义的,因此require.js不会在下次调用时向服务器请求它们。
让我解释一下:
require(['jquery', 'i18n', 'commonjs', ...
'jquery'
,'i18n'
,'commonjs'
捆绑到一个脚本core.js
中,现在已插入布局<script src="/core.js"></script>
jquer,i18n的所有功能现在都可以全局访问,无需使用它们。我想特别说reuire.js那些脚本已经加载了,bundles
应该做什么。
我已阅读article关于使用捆绑包并尝试放置
捆绑在我的配置文件中
bundles: {
'core': ['jquery', 'i18n', 'commonjs']
}
但它不起作用,有很多错误,因为我知道只使用bundle的方法是使用优化js和文件夹的r.js。
实际上,我想要的是设置一些已经为require.js加载的脚本。这是一种肮脏的方式吗?
答案 0 :(得分:1)
没有配置选项将脚本标记为已定义。你可以做的是用模块名称和适当的返回值自己调用define
。例如,如果在通过RequireJS开始加载任何模块之前加载带有script
元素的jQuery,则可以执行以下操作:
define("jquery", [], function () {
return $;
});
上面的代码使得无论何时任何模块需要模块jquery
,它们都会得到$
的值。我通常在调用require.config
之前放置类似于模块的模块。这对他们来说只是一个方便的地方。