Yeah, yeah, so I wasn’t super active in the Bubbleverse for a while, and all this may have been announced or is generally known to plugin devs, but I wanted to share a few recent observations about the plugin builder, some of which I think might not have been announced (I’ve actually done A LOT of plugin dev this year, but nothing publicly released until Floppy:
The lib that Bubble uses to minify plugin code still seems to be Google’s Closure Compiler, and either Closure still sucks or the version Bubble leverages doesn’t support ES6, but there’s been a change: If Closure fails, Bubble SILENTLY goes to do-not-minify mode and your plugin will automatically NOT minify. Just know this. (You no longer have to set manually set do_not_minify_plugin, but just because your plugin runs in production mode does not mean the code is minified!)
Since I’ve been writing async/await code and like to use things like ?? (nullish coalescing operator) Closure always fails, and I’ve been using a VS Code extension (edit: it’s this one, which is an implementation of Terser) to minify my main plugin code for production. (I write all of my code as an essentially self-executing function in initialize.js, which you should, too.) And this plugin lets you just select code to be minified and minify it by hitting F1. (This is useful because of Bubble’s ABJECTLY STUPID use of non-compliant JS to indicate the start of all functions. What a bunch of sadistic turds y’all are. Seriously, you Bubble effs: Get a clue.) Also, this VSCode extension is the only one I’ve found that supports ?? and other completely valid ES6 syntax. (Uglify does not for whatever reason and other Terser-based extensions make similar mistakes.)
The copy/paste plugin element/action right-click option creates a COPY now rather than a CLONE, which is great (used to be that copied actions and such would have identical UIDs which leads to problems. This SEEMS to be fixed.
but you still can’t reorder Actions in an element plugin’s Action list, which is just stupid. Also, Bubble, please just let us copy and paste an Action in an element plugin (clone the effing Action and make a new Action starting with the props from some existing action which took me hours to set up). The setup of new actions is fucking torturous and literally kills the development of new and useful plugins. C’mon people: Do ya want avocados or not?
- Bubble gods, please let us save a plugin version without having to “publish” it. (It would be in the “versions” list, but not available to our plugin users. Because of the minification stuff, what I’m doing now in my commercial plugins is saving a snapshot by publishing the plugin with UNMINIFIED code with a note that says, “hey dummy don’t use this” and then properly labeling my “production” pushes. But this is extremely dumb for many reasons. (And no, syncing to GitHub – while essential – is not a substitute for the feature I’m requesting.)
Anyway, hope this is new and helpful to someone.
So, my summary review: The Bubble Plugin Builder interface is still a steaming pile of you-know-what, but slightly less smelly than before. Also, the reduction in smell was not announced publicly, AFAICT.