简要问题描述:我想使用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生成这些模块的所有优势。
答案 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。