将脚本标记为已在 require js 中定义
Mark script as already defined in require js
我不得不将一些脚本移动到通过 bundle 同步加载,我想将这些脚本设置为已经定义的,所以 require.js 不会在下次调用时向服务器请求它们。
让我解释一下:
- 我有一些到处都需要的脚本,例如i18n 和 jquery。所以我有数百个 if 围绕项目调用,例如
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 的唯一方法是使用 r.js 来优化 js 和文件夹。
实际上,我只想将一些脚本设置为已为 require.js 加载。这是一种肮脏的方式吗?
没有用于将脚本标记为已定义的配置选项。您可以做的是使用模块名称和适当的 return 值自己调用 define
。例如,如果在开始通过 RequireJS 加载任何模块之前使用 script
元素加载 jQuery,则可以执行以下操作:
define("jquery", [], function () {
return $;
});
上面的代码使得每当任何模块需要模块 jquery
时,它们都会获得 $
的值。我通常会在调用 require.config
之前放置这样的模块。这对他们来说只是一个方便的地方。
我不得不将一些脚本移动到通过 bundle 同步加载,我想将这些脚本设置为已经定义的,所以 require.js 不会在下次调用时向服务器请求它们。
让我解释一下:
- 我有一些到处都需要的脚本,例如i18n 和 jquery。所以我有数百个 if 围绕项目调用,例如
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 的唯一方法是使用 r.js 来优化 js 和文件夹。
实际上,我只想将一些脚本设置为已为 require.js 加载。这是一种肮脏的方式吗?
没有用于将脚本标记为已定义的配置选项。您可以做的是使用模块名称和适当的 return 值自己调用 define
。例如,如果在开始通过 RequireJS 加载任何模块之前使用 script
元素加载 jQuery,则可以执行以下操作:
define("jquery", [], function () {
return $;
});
上面的代码使得每当任何模块需要模块 jquery
时,它们都会获得 $
的值。我通常会在调用 require.config
之前放置这样的模块。这对他们来说只是一个方便的地方。