TypeScript包管理
看起来TypeScript有一个很好的模块系统,但是这会取代像requirejs这样的需求吗?换句话说,当您“编译”一个typescript包时,它会为您处理所有依赖项解析吗?请举例说明 TypeScript没有运行时模块加载程序。您仍然需要提供一个在运行时使用的模块加载器,例如requirejs。TypeScript支持生成与commonJS(用于node.js脚本)和AMD加载程序(例如requireJS)兼容的JavaScript代码。要指定在“-module”中使用pass,请使用“amd”或“commonjs”切换到编译器 以下是如何在TypeScript中导出模块:TypeScript包管理,typescript,Typescript,看起来TypeScript有一个很好的模块系统,但是这会取代像requirejs这样的需求吗?换句话说,当您“编译”一个typescript包时,它会为您处理所有依赖项解析吗?请举例说明 TypeScript没有运行时模块加载程序。您仍然需要提供一个在运行时使用的模块加载器,例如requirejs。TypeScript支持生成与commonJS(用于node.js脚本)和AMD加载程序(例如requireJS)兼容的JavaScript代码。要指定在“-module”中使用pass,请使用“am
export module depModule {
export class A {
}
}
下面是使用--module amd开关生成的JavaScript代码:
define(["require", "exports"], function(require, exports) {
(function (depModule) {
var A = (function () {
function A() { }
return A;
})();
depModule.A = A;
})(exports.depModule || (exports.depModule = {}));
})
TypeScript可以发出代码,这些代码将与AMD兼容的依赖项加载程序(如requirejs)或commonjs环境(如Node)一起工作。您可以通过编译器的--module选项来控制这一点。编译器本身不会在运行时处理依赖项解析,这取决于您的工作,但它会尝试在编译时解析依赖项,以便为您提供类型信息
例如,您可以在CodePlex的测试目录中看到使用模块的项目示例。编译这些测试项目的输出是.js文件,可以使用requirejs(如果您通过--module amd)或Node(如果您通过--module commonjs)加载这些文件。如果您的应用程序仅由typescript模块/文件组成,则可以不使用模块加载程序或其他依赖关系管理。您需要包含所有带有注释引用的依赖项,并使用编译器的--out选项。例如:
tsc --out compiled.js app.ts
这将在compiled.js中放入为app.ts生成的js及其所有依赖项,包括依赖项的依赖项。然后,生成的文件可以直接包含在带有脚本标记的html文件中。它也可以缩小。不支持在运行时加载模块