2

简要问题描述:我想使用打字稿生成AMD风格命名为模块,然后我想用需要从捆绑和精缩文件加载。 JS。使用require.js来加载一个名为打字稿模块

问题:

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

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


更新:

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

    exports.greet = greet; 
}); 

然后,我可以包和生成的JavaScript模块,再压缩成可以很容易地通过浏览器缓存文件:我正沿着下面的JavaScript解决方案的思路思考。此外,require.js不必去那里通过几个GET请求获取模块 - 它们已经被定义。另外,我将拥有使用TypeScript生成这些模块的所有优点。

回答

2

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

它有一个定义文件,我写了一个使用原始RequireJS in TypeScript(而不是导入语句)与jQuery的例子,你可能会适应。

下面是导致打字稿代码...

///<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中,我会愉快地提供打字稿等同。

+0

我已经更新了我的问题,并提供了更详细的解释。这是可能的还是我只是在做点什么? –

+0

如果您捆绑并缩小所有文件,我会建议只将这些文件包含在脚本标记中,并将所有模块加载。这将是减少请求(最多1个请求)的最简单的解决方案。 – Fenton

+0

所以你建议不要使用外部TypeScript模块?相反,我可以使用内部的TypeScript模块,对吧? –