【发布时间】:2021-08-06 05:52:14
【问题描述】:
我最近升级到 bootstrap 5,我的应用程序中的工具提示/弹出框停止工作。我在控制台出现以下错误:
我的理解是我的 Laravel Mix / webpack 未能在其编译中包含 popper.js?我不明白它为什么要查找 popper.js.map,不应该将所有内容都编译成一个文件(app.js)吗?
在我的webpack.mix.js 我有:
const mix = require('laravel-mix');
mix.react('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
在resources/bootstrap.js 我有:
window._ = require('lodash');
try {
window.Popper = require('popper.js').default;
require('bootstrap');
} catch (e) {}
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
最后在resources/app.js我有:
window.bootstrap = require('./bootstrap');
require('./components/Job');
require('./components/Toast');
require('./components/Proteomes/ProteomeManager');
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new window.bootstrap.Tooltip(tooltipTriggerEl)
})
我已经通过 npm 安装并保存了 bootstrap 和 popper。谢谢!
【问题讨论】:
-
试试
mix.react('resources/js/app.js', 'public/js').sass('resources/sass/app.scss', 'public/css').sourceMaps(); -
谢谢 - 错误消失了,但我的工具提示仍然无法正常工作,我认为这是一个不相关的问题 - 你能解释一下 .sourceMaps() 方法的作用吗?我阅读了文档,但不太了解
-
它创建了一个可供浏览器/调试器使用的源映射文件,以“在调试器中呈现重构的原始文件”。基本上是从您的已编译资产(例如
public/js/app.js,可以缩小)到您的resources/js/app.js的链接/引用,因此您知道原始文件中出了什么问题
标签: javascript laravel twitter-bootstrap webpack