It was mostly stuff specific to our specific situation.
We were still on node 12 because, until recently, Google Cloud Functions didn’t support anything newer. But when I installed it, I noticed it was running on x86 via Rosetta. So I upgraded to the latest node (17) which installed as native arm64.
Almost everything “just worked” but there were build errors with installing: webpack, node-sass, gprc, and node-canvas.
Webpack turned out to be an issue with node current (17) so downgrading to lts (which is currently 16) worked.
That seems to have magically fixed the gprc build too.
We weren't actually using node-sass anymore; so removed that dependency.
Upgrading node-canvas to 2.8.0 and building from source (after installing its dependencies via homebrew) seems to have worked.
All in all it took maybe 2 hours to follow all the rabbit holes. And our whole engineering team is going to move over to arm64 as soon as Apple can deliver their machines.