标记已在require js

时间:2017-07-21 20:37:38

标签: javascript jquery requirejs

我不得不通过bundle将一些脚本移动到同步加载,我想将这些脚本设置为已定义的,因此require.js不会在下次调用时向服务器请求它们。

让我解释一下:

  1. 我有一些在任何地方都需要的脚本,例如i18n和jquery。如果调用项目周围的所有内容,例如
  2. ,我就会有这种情况

    require(['jquery', 'i18n', 'commonjs', ...

    1. 我将'jquery''i18n''commonjs'捆绑到一个脚本core.js中,现在已插入布局<script src="/core.js"></script>
    2. jquer,i18n的所有功能现在都可以全局访问,无需使用它们。我想特别说reuire.js那些脚本已经加载了,bundles应该做什么。

      我已阅读article关于使用捆绑包并尝试放置 捆绑在我的配置文件中 bundles: { 'core': ['jquery', 'i18n', 'commonjs'] }

      但它不起作用,有很多错误,因为我知道只使用bundle的方法是使用优化js和文件夹的r.js。

      实际上,我想要的是设置一些已经为require.js加载的脚本。这是一种肮脏的方式吗?

1 个答案:

答案 0 :(得分:1)

没有配置选项将脚本标记为已定义。你可以做的是用模块名称和适当的返回值自己调用define。例如,如果在通过RequireJS开始加载任何模块之前加载带有script元素的jQuery,则可以执行以下操作:

define("jquery", [], function () {
  return $;
});

上面的代码使得无论何时任何模块需要模块jquery,它们都会得到$的值。我通常在调用require.config之前放置类似于模块的模块。这对他们来说只是一个方便的地方。