I thought that was a totally reasonable file size too, until I looked up Docker image sizes for node:
https://hub.docker.com/r/library/node/tags/
Regular images are ~260MB and "slim" images are 85MB, but Alpine-based images are a paltry 18MB.
So it seems something in the Node.js compiler is ballooning up the size of the code, by a factor of about three. I wonder what.