RequireJS有时无法加载jQuery
RequireJS sometimes fails to load jQuery
我的项目结构是这样的
root/
lib/
js/
在我的js文件夹中,我有一个require-config文件,它引用了lib目录中的javascript文件。像这样:
require.config({
paths: {
jquery: ["../lib/jquery/dist/jquery"],
}
});
像这样在视图中启动:
<script data-main="js/require-config" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.1/require.min.js"></script>
<script>require(["viewModels/searchViewModel"]);</script>
这就是我的searchViewModel看起来像(省略了函数内的代码),从typescript生成:
define(["require", "exports", "jquery"], function (require, exports, $) {
"use strict";
var SearchViewModel = (function () {
function SearchViewModel() {
}
return SearchViewModel;
}
});
在大多数情况下,找到正确的文件似乎没有问题。偶尔,它会在/js/jquery.js中查找jquery文件,这会导致浏览器对http://localhost/js/jquery.js抛出404。
我在require配置中做错了什么吗?为什么它有时起作用有时不起作用?
不要使用data-main
来加载你的RequireJS配置。它间歇性工作的原因是data-main
导致RequireJS异步加载命名脚本。因此,当require(["viewModels/searchViewModel"]);
执行时,您的配置不一定已经加载。
只有当所有依赖于此配置的代码通过传递给data-main
的相同文件加载时,使用data-main
加载配置才是安全的。这可能是因为你已经构建了一个包含应用中所有模块和配置的bundle,或者是因为你在配置加载后只使用了deps
来加载模块。
你的情况是不安全的,因为你的代码在模块之外,你通过data-main
加载,依赖于被加载的配置。
分割script
:
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.1/require.min.js"></script>
<script src="js/require-config.js"></script>
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 什么'这是加载jQuery的最佳方式
- 在WordPress站点中加载jquery.js后加载javascript代码
- 延迟加载jquery后替换$(document).ready(function)
- 如何使用onLoad加载jQuery JSON.从Zipcode On Form获取城市和州
- 对页面重新加载 Jquery 执行操作
- 在Ajax(过滤器)加载之后加载jQuery脚本
- 异步加载JQuery时Tabbed Box已损坏
- 加载Jquery时Chrome扩展出错
- 在更改事件上加载jQuery DataTable
- 手动加载JQuery而不触发内容安全策略
- 如果更改,请在ng之后重新加载Jquery
- 脚本似乎在加载jQuery之前运行-未定义Uncaught ReferenceError:$
- 在使用jquery之前动态加载jquery
- 如何重新加载jquery,以便它能为下一个进程工作
- Firefox没有't从ajax.googleapis.com加载jquery
- 我无法在自定义Wordpress主题中成功加载jQuery
- 正在从maphilight href加载Jquery选项卡
- 如何在完全加载html之后加载jquery代码段
- 在页面加载jQuery/Javascript时,按.class对表行进行排序