Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使在使用推荐的PopperJS版本后,也会通过RequireJS发布加载PopperJS和引导_Javascript_Twitter Bootstrap_Requirejs_Bootstrap 4_Popper.js - Fatal编程技术网

Javascript 即使在使用推荐的PopperJS版本后,也会通过RequireJS发布加载PopperJS和引导

Javascript 即使在使用推荐的PopperJS版本后,也会通过RequireJS发布加载PopperJS和引导,javascript,twitter-bootstrap,requirejs,bootstrap-4,popper.js,Javascript,Twitter Bootstrap,Requirejs,Bootstrap 4,Popper.js,我正试图通过requirejs加载jquery、popperjs和引导(v4 beta版),并在控制台中不断获得: Uncaught Error: Bootstrap dropdown require Popper.js (https://popper.js.org) at bootstrap.js:6 at bootstrap.js:6 at bootstrap.js:6 以下是我的主要代码: requirejs.config({ paths: { 'j

我正试图通过requirejs加载jquery、popperjs和引导(v4 beta版),并在控制台中不断获得:

Uncaught Error: Bootstrap dropdown require Popper.js (https://popper.js.org)
    at bootstrap.js:6
    at bootstrap.js:6
    at bootstrap.js:6
以下是我的主要代码:

requirejs.config({

  paths: {
    'jquery': 'lib/jquery',
    'popper': 'lib/popper',
    'bootstrap': 'lib/bootstrap'
  },

  shim: {
    'bootstrap': ['jquery', 'popper']
  }

});

requirejs(['jquery', 'popper', 'bootstrap'], function(jquery, popper, bootstrap) {});
关于加载popper.js和使用requirejs引导的问题,已经有人问过几次了,我使用的是参考的umd版本

所有内容都已正确加载到页面中:

<script data-main="js/main.js" src="js/require.js"></script>
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="main" src="js/main.js"></script>
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="js/lib/jquery.js"></script>
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="popper" src="js/lib/popper.js"></script>
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="bootstrap" src="js/lib/bootstrap.js"></script>

我很困惑,为什么我仍然得到这个错误,并开始认为这与我的要求配置的东西。有什么想法吗?

在发布之前,我就是这样修复
引导下拉列表require Popper.js的(https://popper.js.org)
问题

与其他文章中提到的类似,这个想法是创建自己的模块来包装引导。然后,该模块在加载引导程序之前,以规定的方式加载并设置
popper.js

requirejs.config({
“路径”:{
“jquery”:”https://code.jquery.com/jquery-3.2.1.slim.min",
“波普尔”:https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min",
“引导”:https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min"
“initBootstrap”:“…wotever…”
},
“垫片”:{
“引导”:[“jquery”]
}
});
...
定义(“initBootstrap”、[“popper”]、函数(popper){
//根据引导程序的要求设置提升器
window.Popper=Popper;
要求([“引导”],函数(引导){
//什么都不做-让引导程序自己初始化
});
});
现在让您的代码/网站依赖于
initBootstrap
,而不是
bootstrap

或者如前所述,如果您不想创建新模块,您可以添加一条require语句:

require([“popper”],函数(popper){
window.Popper=Popper;
需要([“引导”]);
});
注意,这也会发布在GitHub上。

或者- “bootstrap.com/contents”:捆绑的JS文件(bootstrap.bundle.JS和minified bootstrap.bundle.min.JS)包括Popper,但不包括jQuery

所以我把它添加到我的库中。更改了名称(“bootstrap.bundle.min.js”->“bootstrap.min”),为引导创建了一个路径,并为jquery创建了一个垫片。似乎对我有用

这对我很有用

require.config({
垫片:{
“bootstrap”:[“jquery”]
},
路径:{
“jquery”:“../jsLibrary/jquery”,
“波普尔”:https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min",
“引导”:https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min",
“tatMusic”:“../music/tatMusic”
}
});
需要([“音乐”,“波普尔”],函数(音乐,波普尔){
window.Popper=Popper;
要求([“引导”],函数(引导){
});

});我使用Bootstrap提供的内容,并在标记之前加载。这也在@mlegg部分中,我对这两种方法都没有任何问题。当我使用requirejs加载所有东西时,我的问题就出现了。引导beta.1的requirejs构建有点缺陷,它希望Popper.js在全局范围内可用。他们应该在下一个版本中解决这个问题。库是
popper.js
,而不是
popper
。上面的代码对我来说没有错误。这在Bootstrap 4.0.0.-beta中看起来很好,但是当尝试使用最新的Bootstrap v4.0.0(仅删除“-beta”)时,会出现一个错误,即未找到
popper.js
,因为它在项目的根目录中查找它。当我把根放上去的时候,它会工作,但那不是正确的方法。有人也有同样的问题?是的,利奥,这是真的。4.0.0-beta是最后一个与requirejs一起使用的非绑定引导版本。有关解决方案,请参阅“只需要bootstrap.bundle.js而不是bootstrap.js”。谢谢你,oggingerPlease不要只发布代码作为答案,还要解释你的代码的作用以及它是如何解决问题的。带有解释的答案通常更有帮助,质量更好,更容易吸引选票