What about creating a separate git repo that contains all of the packages used checked in to the source, call it gaia-node_modules, then have the gaia makefile pull the .zip file of that repo down and unzip it, trigger an npm rebuild from that source.

By using the separate repo, all of that noise is not in the main gaia repo, and by committing the source we are guaranteed known working snapshots. We could use tags or branches in that separate repo if different branches of gaia needed different snapshots.