nit: I don't know where the rule "everything has to be instantiatable" comes but that ends up just adding some noise.
Here it looks like we are recomputing stage dir file path, whereas we already have it.
Isn't this.stageDir.path equal to this.options.STAGE_APP_DIR?
Same comment apply to appDir. and to all build.js files that do alike.