The reason we’ve made that switch is because an approach that compiles Node.js from scratch, with custom mongosh-specific parts, allows us to generate binaries that:
- Use only APIs that are considered officially supported by Node.js
- Are not tied to a specific Node.js version (e.g. we could start using Node v14.x at any time)
- Are signable, e.g. we can sign and notarize them for publishing on macOS
- Eventually support bundling native addons
Do you have a specific use case for compiling binaries locally? We’re mostly focusing on producing executables that match what would be produced in an actual release here.
(Fwiw, you can always also download the release artifacts from CI using e.g. wget https://s3.amazonaws.com/mciuploads/mongosh/<commit>/mongosh-0.4.0-linux.tgz.)