2015-02-11 54 views
1

我正在构建系统,这是...不同。加载依赖关系,而不是通过相对路径?

  • 它在远程机器上并行运行编译器等工具。
  • 我们将所有用户的依赖关系保存在一个共同的地方,而不是复制每个项目的源根目录下的lib /目录或类似文件。
  • 我们仅向每个开发人员机器签出存储库的子集,这意味着某些文件位于本地磁盘上,而另一些则在FUSE文件系统中访问。
  • 一些输入(例如,.d.ts文件)由构建系统生成,这些输入位于不同的路径或从另一个FUSE文件系统加载。

所以我最终之类的东西

// hmm, is this the right number of ..'s to 
// get up to the shared DefinitelyTyped repo? 
/// <reference path='../../../../../typings/angularjs/angular.d.ts' /> 

和洗牌周围生成系统中的文件很多代码打下了一个文件结构模仿TSC所期待的。

这些问题是由于完全依赖解析/// <reference/>标记相对于其出现文件路径的tsc行为。我真的想是给的,应通过按顺序检查来解决绝对路径堆栈:在开发商

  1. 根路径的工作空间
  2. ,其中构建系统却将生成的文件
  3. 根路径整个存储库的只读快照的路径

有没有人有一种变通方法用于加载文件以不同的方式(比如在语言服务API的顶部自定义编译器前端?) 拥有核心TS团队考虑要素里这个?

+0

看看'tsc'编译器的源代码,似乎你可以使用根路径(https://github.com/Microsoft/TypeScript/search?utf8=%E2%9C%93&q=tryresolvescriptreference&type=Code)已经。你能缩短你的问题到一些[最小,完整和可验证的例子](http://stackoverflow.com/help/mcve)? – xmojmr 2015-02-11 19:37:17

回答

2

有没有人有一种变通方法用于加载文件以不同的方式

您可以使用grunt-ts转变为解决相对路径问题,为您提供:https://github.com/TypeStrong/grunt-ts#transforms

(如自定义编译器前端在语言服务API之上?)

Atom-TypeScript ha s是由tsconfig.json确定的汇编上下文:https://github.com/TypeStrong/atom-typescript/blob/master/docs/tsconfig.md因此您不需要参考文件。但你仍然需要进口他们为外部模块。我正在努力使它更容易为您生成这些(我创建atomts的原因之一)。

+1

太棒了1.4。1支持:) – Clark 2015-02-13 10:57:59

+1

我甚至想从github转移到主版本,因为它包含修复我和其他人的东西 – basarat 2015-02-13 23:14:49