Я пытался использовать npm dragula в своем электронном приложении, и после борьбы с правильным способом включения модулей в мой html (в чем я до сих пор не уверен, если честно) я столкнулся с рядом ошибок.
Код моей первой попытки: HTML
<div id = "btnContain">
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div class = "btnContain1">Button area</div>
<div id = "btnContain2"></div>
</div>
</div>
<!-- i have this many because I needed the div to scroll -->
JavaScript
require('dragula')
function dragula () {
dragula([document.getElementById('btnContain2'), document.getElementById('btnContain')]);
}
Я поместил драгулу в функцию, потому что без нее она возвращает dragula is not defined error, затем я запустил этот код без каких-либо ошибок, но он не работал. Итак, я заметил, что мне нужно вызвать функцию, которую я сделал.
require('dragula')
function dragula () {
dragula([document.getElementById('btnContain2'), document.getElementById('btnContain')]);
}
dragula()
Но это возвращает ошибку Maximum call stack size exceeded, которая возникает из-за того, что драгула продолжает многократно вызывать себя снова и снова.
На данный момент я не уверен, что делать, и мои 17 дней javascript, что неудивительно, подвели меня. Любые советы по этому вопросу будут очень признательны, а также советы в будущем.
(Пожалуйста, помилуй меня, если я сделал что-то глупое)
Редактировать: я прочитал этот пост о том, как решить ошибку размера стека, но не знаю, как сделать так, чтобы это соответствовало моему сценарию.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Мне удалось исправить это с помощью кода ниже
var dragula = require('dragula')
dragula([document.getElementById('btnContain2'), document.getElementById('btnContain')]);
Удачи всем, кто столкнется с этой проблемой в будущем!
Чтобы добавить параметры к драгуле, например
removeOnSpill, просто поставьте фигурную скобку после плоской скобки.