You are hitting upon a few decisions I made in the past around how Chutzpah works that could use some revisiting.
-
Chutzpah used to copy all .js files to a temp directory (and flatten their paths so they were all co-located) and a many releases ago I changed that to run in place. One of the main motivations for the decision was when I started adding RequireJS/AMD support it was important to keep all files in the same directory structure since that is how AMD works. I have any multiple people ask for the ability to not have it run in place but I have never had the time to revisit this decision. Chutzpah could copy these files to a temp dir(or different folder) and just re-create the existing directory structure. This shouldn't be too hard but I was originally concerned about this since what if a use references a file from a different drive or with many ../../../../../../... while I know these are not common cases (or should ever happen) I wanted to make sure Chutzpah did something sensible then. These are all solvable but something I didn't work more on at the time.
-
When I added TypeScript/CoffeeScript support and I generated the compiled version in place but I prefixed them with a custom prefix. I think I was partly concerned with overwriting someones files if they already had a a.js for their a.ts. I also wanted to make it easy for a user to tell their source control tool to ignore the generated files which is easy since you can say "ignore _chutzpah*". I am fine revisiting this decision and adding configuration options to turn it on and off (in the chutzpah.json).