将脚本标记为已在 require js 中定义

Mark script as already defined in require js

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

让我解释一下:

  1. 我有一些到处都需要的脚本,例如i18n 和 jquery。所以我有数百个 if 围绕项目调用,例如

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

  1. 我将 'jquery''i18n''commonjs' 捆绑到一个脚本 core.js 中,现在插入布局 <script src="/core.js"></script>

现在可以全局访问来自 jquer、i18n 的所有函数,而不需要要求它们。我想特别告诉 reuire.js 这些脚本已经加载,bundles 应该做的事情。

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

但它不起作用,出现了很多错误,据我所知,使用 bundle 的唯一方法是使用 r.js 来优化 js 和文件夹。

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

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

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

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