我在一个使用Aurelia CLI(v0.31.1)和TypeScript的应用中,尝试配置Bootstrap 4 beta和requirejs时遇到了问题。尝试了多种配置变化后,仍然会出现以下控制台错误:
未捕获的错误:Bootstrap下拉菜单需要Popper.js
以下是复现步骤。首先安装这些包:
$ npm install --save jquery bootstrap@4.0.0-beta 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"
]
}
注意上面的配置中:
- popper.js在bootstrap之前注册
- 使用了UMD模块
- 将popper.js设置为bootstrap的依赖项,位于jquery旁边
最后,在我的app.ts文件中:
import 'bootstrap';
使用此配置,使用au build
进行构建很好。但在运行时,使用au run --watch
出现以下控制台错误:
Uncaught Error: Bootstrap下拉需要 Popper.js (https://popper.js.org) (defaults.js:19)
Uncaught Error: Bootstrap下拉需要 Popper.js (https://popper.js.org) (bootstrap.min.js:6)
...略有些进一步:
Uncaught TypeError: plugin.load 不是一个函数 at Module. (defaults.js:19)
不幸的是,Bootstrap 4文档仅提供了使用webpack的说明。因此,在Aurelia CLI的Gitter.im频道和StackOverflow上搜索,我找不到关于Require.js的Aurelia CLI示例。最后,谷歌结果只显示了嵌入alpha版本的示例(它们依赖于“tethering”而不是“popper”)。
SO上类似的问题,出现了相同的错误,但不适用于我的情况:
因此,我的问题是:如何在Aurelia CLI应用程序中使用Require.js配置Bootstrap 4与Popper.js?
谢谢。
main.ts
中,我已经包含了以下内容:import "jquery"; import * as Popper from "popper.js"; (window).Popper = Popper.default;
import "bootstrap";
这是使用aurelia-cli。 - Jeremy Holt