如何在实例模式下将p5.dom添加到p5.js

How to add p5.dom to p5.js in instance mode

我正在使用 requirejs 来捆绑我的文件。我已经使用 p5.js 一段时间了,但我现在需要添加 p5.dom。问题是我不知道如何用我的 requirejs 来做。我找不到任何关于如何使用捆绑的信息。

我有这样的东西:

require(['lib/p5js/lib/p5'], function (p5) {
    var myp5 = new p5(function (_sketch) {
        _sketch.setup = function() {
           ????.createButton('click me'); // I need to access p5.dom here.
       }
    });
});

编辑:当我尝试像变量一样使用它时,我得到 undefined.

require(['lib/p5js/lib/p5', 'lib/p5js/lib/addons/lib/p5.dom'], function (p5, p5Dom) {
    var myp5 = new p5(function (_sketch) {
        _sketch.setup = function() {
           p5Dom.createButton('click me'); // p5Dom is undefined.
       }
    });
});

我使用 shim 来确保 p5.jsp5.dom 加载之前加载,但它没有帮助:

shim: {
        'lib/p5js/lib/addons/p5.dom': {
            deps: ['lib/p5js/lib/p5']
        }
    },

我找到了解决办法。不幸的是,我无法用 requirejs 做到这一点,但我只是在 requirejs 之前包含了脚本标签,它解决了问题。所以它看起来像这样:

<script src="~/lib/p5js/lib/p5.js"></script>
<script src="~/lib/p5js/lib/addons/p5.dom.js"></script>
<script src="~/lib/requirejs/require.js" data-main="/js/scripts/tetromino-client/client.js"></script>

我希望在 requirejs 中做到这一点,但我不明白为什么它不起作用。