TypeScript 包管理

Posted

技术标签:

【中文标题】TypeScript 包管理【英文标题】:TypeScript package management 【发布时间】:2012-09-24 18:23:30 【问题描述】:

看起来 TypeScript 有一个不错的模块系统,但这是否取代了对 requirejs 之类的需求?换句话说,当你“编译”一个 typescript 包时,它会为你处理所有依赖解析吗?示例将不胜感激!

【问题讨论】:

【参考方案1】:

TypeScript 没有运行时模块加载器。您仍然需要提供一个模块加载器以在运行时使用,例如需要js。 TypeScript 支持生成与 commonJS(用于 node.js 脚本)和 AMD 加载器(例如 requireJS)兼容的 javascript 代码。要指定使用哪一个,请使用“amd”或“commonjs”将“--module”切换到编译器。

这是在 TypeScript 中导出模块的方法:

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 = ));
)

【讨论】:

【参考方案2】:

TypeScript 可以生成适用于 AMD 兼容的依赖加载器(如 requirejs)或 commonjs 环境(如 Node.js)的代码。您可以使用编译器的 --module 选项来控制它。编译器本身不会在运行时处理依赖关系解析,这取决于您的工作,但它会尝试在编译时解析依赖关系,以便为您提供类型信息。

您可以在 CodePlex 的测试目录中查看使用模块的项目示例,例如 this one。编译这些测试项目的输出是 .js 文件,可以使用例如 requirejs(如果您通过 --module amd)或 Node(如果您通过 --module commonjs)加载。

【讨论】:

【参考方案3】:

如果您的应用程序仅由打字稿模块/文件组成,则可以不使用模块加载器或其他依赖项管理。您需要将所有依赖项包含在注释引用中,并使用编译器的 --out 选项。例如:

tsc --out compiled.js app.ts

这会将 app.ts 及其所有依赖项的生成 js 放入compiled.js,包括依赖项的依赖项。然后可以将生成的文件直接包含在带有 script 标签的 html 文件中。也可以缩小。不支持在运行时加载模块

【讨论】:

以上是关于TypeScript 包管理的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript环境安装,以及配置idea开发环境

上手TypeScript的Helloworld

TypeScript安装以及使用

TypeScript的使用

TypeScript入门知识总结

typescript 怎么用js库