加载除相对路径以外的依赖项?

时间:2015-02-11 18:06:10

标签: typescript

我在一个不同的构建系统中工作。

  • 它在远程计算机上并行运行编译器等工具。
  • 我们将依赖关系保存在所有用户的公共位置,而不是在每个项目的源根目录下复制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. 整个存储库的只读快照的根路径
  4. 有没有人有一种以不同方式加载文件的解决方法(比如语言服务API之上的自定义编译器前端?) 核心TS团队是否考虑过这样的功能?

1 个答案:

答案 0 :(得分:2)

  

有没有人有一种以不同方式加载文件的解决方法

您可以使用grunt-ts转换来解决相关路径问题:https://github.com/TypeStrong/grunt-ts#transforms

  

(就像语言服务API之上的自定义编译器前端一样?)

Atom-TypeScript具有根据tsconfig.jsonhttps://github.com/TypeStrong/atom-typescript/blob/master/docs/tsconfig.md确定的编译上下文,因此您无需引用文件。但是你仍然需要导入它们用于外部模块。我正在努力让你更容易为你生成这些(我创建atomts的原因之一)。