【发布时间】:2017-01-26 22:50:50
【问题描述】:
我有一个最初基于 Typescript 1.4 构建的项目
它有一个像这样的主文件设置:
/// <reference path="typedefinitions/jquery/jquery.d.ts" />
/// <reference path="typedefinitions/jqueryui/jqueryui.d.ts" />
/// <reference path="typedefinitions/moment/moment.d.ts" />
module myApp {
...
}
所有其他文件都只是引用这个主文件:
/// <reference path="../mainfile.ts" />
module myApp {
//more code that can reference anything else in myApp
}
我们构建过程的一部分将我们所有的应用程序打字稿文件连接在一起,因此我们没有使用任何模块加载器。
在过去这很好用,但是,越来越多的库使用import 设置其定义文件,并且使用上述方法引用它们不起作用。
以ui-router为例,如果我添加:
/// <reference path="../node_modules/angular-ui-router/lib/index.d.ts" />
引用的类型似乎没有出现在任何地方。如果我这样做:
import * as router from 'angular-ui-router';
那么所有其他文件都不能再引用“myApp”。
我最好的办法是重构我摆脱这种情况的方法,同时仍然能够将所有 TS 文件编译成单个 javascript 文件?
有我可以更改的 tsconfig 设置吗?或者我还缺少什么?
【问题讨论】:
-
不幸的是,如果可能的话,我会切换到为您捆绑文件的模块加载器。与 JavaScript 正在成为的东西抗争是不值得的。请记住,一旦 http2 被广泛使用,单个文件包将不是一件好事