Loading plugin via LazyLoad, get error "Uncaught ReferenceError: $ is not defined"

I've been trying to load a JS plugin via LazyLoad:

LazyLoad.js(["https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"], function() {
console.log("select2 loaded");

The console shows this error:

Uncaught ReferenceError: $ is not defined

This is code to extend the functionality of a select box, apart from Knack's built-in selection dialog boxes. I've loaded this code successfully in other webpages, but it's not working here. I thought that perhaps jQuery had not yet loaded, as this code is dependent upon jQuery, so I tried delaying the LazyLoad call by triggering it later, but the result was the same.

I also tried loading jQuery via LazyLoad and then loading the plugin when that was complete, and that removed the error, but subsequent problems arose, I believe due to loading jQuery twice.

Anyone have any ideas on why this is happening, or if there are any workarounds? I ended up adding a lot of custom code to do what I wanted the plugin to do, but it's a lot of work and not without its own problems.