Bootstrap.js зависит от jQuery (если не 4 версия), он может зарезолвится раньше.
const loadScript = (url) => (
new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = url;
script.onload = () => resolve(script);
script.onerror = () => reject(new Error(`Ошибка загрузки скрипта ${src}`));
document.head.append(script);
})
);
loadScript('../node_modules/jquery/dist/jquery.min.js')
.then(() => {
// Теперь когда jQuery подключен, можно подключить сам Bootstrap.js и svg-pan-zoom
// Можно паралельно грузить, так как они не зависят друг от друга
return Promise.all([
loadScript('../node_modules/bootstrap/dist/js/bootstrap.min.js'),
loadScript('../node_modules/svg-pan-zoom/dist/svg-pan-zoom.min.js')
]);
})
.then(() => {
console.log('Все скрипты загружены');
svgPanZoom('#wsr_map', {
zoomEnabled: true,
controlIconsEnabled: true,
fit: true,
center: true
});
})