我正在尝试将Bootstrap 4添加到Aurelia
。我只能让CSS
工作,但bootstrap.js
需要Tether
而且我无法将其包括在内,因为我在控制台中不断收到此错误:
Bootstrap tooltips require Tether
我沿着这个尝试了一些东西
"jquery",
"Tether",
{
"name": "tether",
"path": "../node_modules/tether/dist",
"main": "js/tether.min",
"exports": "Tether",
"resources": [
"css/tether.css"
]
},
{
"name": "bootstrap",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": ["tether", "jquery"],
"exports": "$",
"resources": [
"css/bootstrap.css"
]
},
它确实捆绑了,但它仍在抱怨丢失的Tether
。
我在另一个stack answer上读到了我必须使用此available globally which could be done via
requirejs.config.js`
define(['lib/tether.min'], function(tether) {
window.Tether = tether;
});
但是Aurelia
没有这样的配置。
答案 0 :(得分:13)
经过一段时间花在这上面之后,我相信我想出了一些有用的东西。我没有看到任何错误,我现在能够使用Bootstrap tooltip
,所以我认为这是可行的解决方案。
所有更改都在aurelia.json
配置文件中进行,如下所示:
"prepend": [
"node_modules/bluebird/js/browser/bluebird.core.js",
"node_modules/tether/dist/js/tether.min.js",
"scripts/require.js"
],
"dependencies": [
...
"aurelia-templating-binding",
"jquery",
"tether",
{
"name": "bootstrap",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": ["jquery", "tether"],
"exports": "$",
"resources": [
"css/bootstrap.css"
]
},
...
所以基本上,我只需要将它添加到prepend
以使其正常工作。另请注意,在tether
数组中添加deps[]
无效(可能因为Tether
现在是全局prepend
),但我希望在那里看到它作为提醒无论如何,这是一个依赖。
修改强>
如@ Paul-Sebastian所述,最好将tether
移除deps
Bootstrap
,以消除双重包含的可能性。基本上这是更新的代码:
"tether",
{
"name": "bootstrap",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": ["jquery"],
"exports": "$",
"resources": [
"css/bootstrap.css"
]
},
编辑#2
现在还有一个append
部分刚刚添加到Aurelia-CLI
以帮助使用插件传统图书馆。该部分内容如下:
带有插件的非常顽固的遗产图书馆
某些旧版库可能支持您希望包含在捆绑包中的插件。在某些情况下,这些插件依赖于 由主库定义的全局对象,所以重要的是 插件稍后存在于主库脚本中。这些 插件可以放在
append
部分,它的工作方式完全相同 作为prepend
部分,但脚本附加到末尾 捆绑,在所有其他项目之后。像前置部分所有项目一样 是相对于项目文件夹,而不是src。