使用require.js加载命名的TypeScript模块

时间:2013-02-07 19:54:09

标签: javascript requirejs typescript amd bundling-and-minification

简要问题描述:我想使用TypeScript生成AMD风格的命名模块,然后我想使用require从捆绑和缩小的文件加载的.js。

问题:

  • 可能吗?
  • 或者你建议采用另一种方法吗?

我希望结合使用由TypeScript生成的名为AMD模块的加载捆绑和缩小所有脚本(以便不需要额外的HTTP请求)的好处。


更新:我正在考虑以下JavaScript解决方案:

define("greeter", ["require", "exports", "jquery"], function(require, exports, $) {
    function greet() {
        alert("Hello World!");
    }

    exports.greet = greet;
});

然后,我可以将生成的JavaScript模块捆绑并缩小为可以由浏览器轻松缓存的文件。此外,require.js不必去那里并通过几个GET请求获取模块 - 它们已经被定义。另外,我拥有使用TypeScript生成这些模块的所有优势。

1 个答案:

答案 0 :(得分:2)

我会直接在TypeScript中使用RequireJS解决这个问题。

它有一个定义文件,我写了一个使用jQuery的原始RequireJS in TypeScript(而不是import语句)的例子,你可以调整它。

以下是生成的TypeScript代码......

///<reference path="require.d.ts" />
///<reference path="jquery.d.ts" />
require(['jquery'], function ($) {
    $(document).ready(() => {
        alert('Your code executes after jQuery has been loaded.');
    });
});

如果这不能达到你想要的效果,请告诉我你将如何在JavaScript中完成它,我很乐意提供类似的TypeScript。