title: Loading dependencies other than by relative path?
body: <p>I'm working in a build system which is... different.</p>
  
  <ul>
  <li>It runs tools like compilers in parallel on remote machines. </li>
  <li>We keep dependencies in a common place for all users, rather than copying a lib/ directory or similar under each project's source root.</li>
  <li>We check out only a subset of the repository to each developers machine, which means some files are on local disk and some are accessed in a FUSE filesystem.</li>
  <li>Some inputs (eg. <code>.d.ts</code> files) are generated by the build system and these are in a different path or loaded from yet another FUSE filesystem.</li>
  </ul>
  
  <p>So I end up with things like</p>
  
  <pre><code>// hmm, is this the right number of ..'s to 
  // get up to the shared DefinitelyTyped repo?
  /// &lt;reference path='../../../../../typings/angularjs/angular.d.ts' /&gt;
  </code></pre>
  
  <p>and a lot of code shuffling files around inside the build system to lay out a file structure mimicking what tsc expects.</p>
  
  <p>These problems are due to relying exclusively on the tsc behavior of resolving <code>/// &lt;reference/&gt;</code> tags relative to the path of the file in which it appears. What I would really like is to give a stack of absolute paths which should be resolved by checking in order:</p>
  
  <ol>
  <li>Root path in the developers working space</li>
  <li>Root path where build system puts generated files</li>
  <li>Root path of the readonly snapshot of the entire repository</li>
  </ol>
  
  <p>Does anyone have a workaround for loading files a different way (like a custom compiler frontend on top of the language services API?)
  Has the core TS team considered a feature like this? </p>