未捕获的错误:Bootstrap 的 JavaScript 需要 jQuery 和 requirejs
Posted
技术标签:
【中文标题】未捕获的错误:Bootstrap 的 JavaScript 需要 jQuery 和 requirejs【英文标题】:Uncaught Error: Bootstrap's JavaScript requires jQuery with requirejs 【发布时间】:2015-06-01 16:44:08 【问题描述】:我收到这个错误,说 jQuery 没有定义。
bootstrap.js:8 未捕获错误:Bootstrap 的 javascript 需要 jQuerybootstrap.js:8(匿名函数)
引导程序 v3.3.0
jQuery JavaScript 库 v2.1.3
需要js
require.config(
shim:
'backbone':
deps: ['underscore', 'jquery']
,
'backbone-validation':
deps: ['backbone', 'jquery']
,
'jquerymx':
deps: ['jquery']
,
'bootstrap':
deps: ['jquery']
,
paths:
'jquery': '/public/js/lib/jquery-2.1.3',
'jquerymx': '/public/js/lib/jquerymx-3.2.custom',
'bootstrap': '/public/js/lib/bootstrap',
'handlebars': '/public/js/lib/handlebars-v2.0.0',
'underscore': '/public/js/lib/underscore',
'backbone': '/public/js/lib/backbone',
'backbone-validation': '/public/js/lib/backbone-validation'
);
require(
[
'order!jquery',
'order!jquerymx',
'order!bootstrap',
'order!handlebars',
'order!underscore',
'order!backbone',
'order!backbone-validation'
], function ()
require(['main'], function (main)
main.initialize();
);
);
这里有什么问题吗?
谢谢。
【问题讨论】:
【参考方案1】:一些建议:
首先,RequireJS 2.0 不再支持或不再需要 order
插件。 shim
配置完全能够表达你需要做什么。 See here 了解详情。
其次,我有点困惑,为什么您同时将 jquery
和 jquery.min
列为依赖项。他们应该提供完全相同的东西,jquery.min
只是一个较小的文件。当您两次提取相同的代码时,某些 JS 可能会感到困惑,这可能就是这里发生的情况。尝试从您的配置中删除所有 jquery.min
实例。
最后,您的两阶段require(...)
呼叫似乎没有必要。假设您的 main
模块直接列出了它需要的库,您应该可以这样做:
require(['main'], function (main)
main.initialize();
);
如果上述建议没有帮助,请提供更多详细信息 - 即 main
模块中的内容。
【讨论】:
以上是关于未捕获的错误:Bootstrap 的 JavaScript 需要 jQuery 和 requirejs的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap - 未捕获的类型错误:无法读取复选框单击时未定义的属性“单击”
未捕获的错误:Bootstrap 的 JavaScript 在 Angular 4 上需要 jQuery
使用 Carousel 时 Jquery / Bootstrap “未捕获的类型错误”
未捕获的语法错误:Bootstrap.esm.min.js:6
未捕获的错误引导需要 jquery 在 bootstrap.min.js
Bootstrap 4,“未捕获错误:Bootstrap工具提示需要Tether(http://github.hubspot.com/tether/)”