【发布时间】:2016-11-09 07:26:48
【问题描述】:
我正在尝试在遗留 JS 系统的一部分中使用 TypeScript。 在这个系统中,存在许多在 RequireJS 环境中执行的应用程序,在该环境中 main.js 将在该应用程序启动时执行。我已经创建了这个结构
App1/
main.js
app.ts
Modules/
myModule.ts
Models/
model1.js
model2.js
模型是生成的代码,必须保留为 .JS 文件。 来自不同 .ts 模块的“Require”语句应该需要模型。
我知道如何在模块文件夹中的声明文件中使用类似的东西来编译 .ts 文件。
declare module "Models/model1" { var x:any; export = x;}
但代码不会执行,因为这将为 myModule.ts 创建这样的 AMD 模块定义
define(["require","exports","Models/model1", function(require,exports,model){ ...
但路径被 Require.JS 解析为
http://mysite/Models/model1.js
缺少路径部分,因为路径是相对的,并且必须是 RequireJS 的上下文根的绝对路径。我不能将模型作为 TS,因为它们是生成的文件。它们不仅仅通过重命名为 .ts 来编译 由于应用程序在线束、生产和单元测试设置中运行的不同方式,非相对路径也不可用。
问题:有没有办法让 TypeScript 为 JavaScript (.js) 模块生成相对路径?
【问题讨论】:
标签: javascript typescript requirejs amd typescript-typings