我在使用requirejs和TypeScript在Aurelia CLI应用程序(v0.31.1)中配置Bootstrap 4 beta时遇到问题。在尝试了几种配置变化之后,我继续收到以下控制台错误:
未捕获的错误:Bootstrap下拉列表需要Popper.js
这里是重现步骤。首先,安装软件包:
$ npm install --save jquery [email protected] popper.js
接下来,我配置了aurelia.json:
"jquery",
{
"name": "popper.js",
"path": "../node_modules/popper.js/dist/umd",
"main": "popper"
},
{
"name": "bootstrap",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": [
"jquery",
"popper.js"
],
"exports": "$",
"resources": [
"css/bootstrap.css"
]
}
请注意,在上面的配置中:
最后,在我的app.ts中:
import 'bootstrap';
通过这种配置,使用构建可以au build
正常工作。但是在运行时,使用au run --watch
会出现以下控制台错误:
未捕获的错误:引导程序下拉列表需要Popper.js(https://popper.js.org)(defaults.js:19)
未捕获的错误:引导程序下拉列表需要Popper.js(https://popper.js.org)(引导程序。 min.js:6)
...进一步:
未捕获的TypeError:plugin.load在Module中不是函数。(defaults.js:19)
不幸的是,Bootstrap 4文档仅提及webpack上的说明。在Aurelia的Gitter.im通道和StackOverflow上都进行搜索。我无法通过Require.js找到有关Aurelia CLI的示例。最后,Google精选仅显示嵌入alpha版本的示例(依赖于“网络共享”而不是“ popper”)。
关于SO的类似问题,具有相同的错误,但不适用于我的情况:
所以,我的问题是:如何在Aurelia CLI应用程序中使用Popper.js配置Bootstrap 4(使用Require.js,而不是Webpack)?
谢谢。
Popper在测试版中取代了Tether。
因此,您需要将popper和popper换成系绳(如果您从未使用过alpha,则将其添加)到aurelia.json文件的prepend部分。(确保您链接到下面显示的UMD版本)
"prepend": [
...
"node_modules/jquery/dist/jquery.js",
"node_modules/popper.js/dist/umd/popper.min.js",
...
]
您还需要按预期进行捆绑,如下所示:
{
"name": "bootstrap4",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": [
"jquery"
],
"exports": "$",
"resources": [
"css/bootstrap.css"
]
}
与系绳不同,popper似乎不需要前置。因此,您可以像其他依赖项一样包含它
{
"name": "popper.js",
"path": "../node_modules/popper.js/dist/umd",
"main": "popper.min"
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句