嘿,这是我对 stackoverflow 问题的第一个回答,但由于我自己一直在努力解决这个问题,所以我想分享我的答案。就像其他答案说的那样,bootstrap 需要 popper js,但它在根目录上引用 popper 本身,因此无论您是否加载它都没有关系,bootstrap 在根目录上查找它,而您将它放在更深的目录中。看下面的代码,你可以看到它使用了 require('popper.js'):
bootstrap.js
解决方案是使用 require 来定义模块“popper.js”,并完全按照这个名称如下:
require.config({
baseUrl: 'lib',
paths: {
main: 'main',
jquery: 'jquery/dist/jquery',
'jquery-slim': 'jquery/dist/jquery-3.3.1.slim.min',
'jqueryUnobtrusive': 'jquery-validation-unobtrusive/jquery.validate.unobtrusive',
'bootstrap': 'bootstrap/dist/js/bootstrap',
'knockout': 'knockout/knockout-latest',
'ajax': 'jquery-ajax/jquery.unobtrusive-ajax',
'shop': '/scripts/shop/shop',
'domready': 'requirejs/domready',
'shoporder': '/scripts/shoporder/shoporder',
'popper': 'popper.js/dist/umd/popper'
}});
define("popper.js", ['popper'], () => {
require(['popper'], () => {
require(['bootstrap']);
});
define(['main', 'jquery', 'jquery-slim'], () => {
require(['jqueryUnobtrusive', 'ajax']);
require(['knockout']);
require(['jquery']);
require(['popper.js']);
});
这样引导程序会寻找正确的目录。