dde*_*nis 15 requirejs visual-studio-2012 typescript
对于为什么以及何时需要使用Typescript,这是一个更普遍的问题.我以前在requireJs上做了一些工作,并且在部署之前总是使用r.js构建脚本.据我所知,合并所有js文件(模块)的构建脚本,是为了降低http请求的数量,并提供一种模块化代码的方法.
我的问题是:由于typescript已经提供了一种将代码分离到模块的简单方法,为什么不只是合并生成的js文件,而不是使用requirejs来处理模块的额外步骤?如果处理大型项目,我理解所有js不应该一次加载,但我认为仍然会以某种方式捆绑模块.
编辑:更具体一点: 为什么使用requireJs来管理我的模块,而不仅仅是坚持使用typescript internals模块,据我所知,这些模块也可以在运行时加载.基于amd和requirejs的内部模块与外部模块.
您选择使用RequireJS在浏览器中运行TypeScript程序的唯一原因是,如果您有数百个模块,但页面可能只需要两个或三个来执行其操作.我们在这里谈论严肃的大型程序,而不是轻量级应用程序或网页的其他时髦的东西.
将RequireJS用于一个非常大的应用程序意味着你只需加载你真正需要的脚本 - 而不是一切以防万一.
举个例子,假设您将Microsoft Office编写为TypeScript程序,您可以使用RequireJS根据需要加载所需的东西.因此,首先,您将加载探索文件所需的内容,然后在选择文件时,将导致该模块(可能是Word)加载其依赖项.这可能意味着你只用几个小块下载了10%的程序.
模块装载机
TypeScript没有自己的模块加载器.它将TypeScript编译为JavaScript,将模块导入语句转换为CommonJS或AMD样式代码.异步模块定义(AMD)是RequireJS使用的模块格式.NodeJS使用CommonJS模块.无论您使用的是TypeScript还是JavaScript,都需要依赖这些模块加载器.
TypeScript只是简单地改变了这个:
import myModule = module('mymodule');
Run Code Online (Sandbox Code Playgroud)
根据TypeScript语言规范的 10.4节中的任何一个require或define语句.
对于您描述的用例,您不需要 requireJS,因为您不需要手动合并生成的 js 文件。Typescript 编译器可以为你做到这一点。您可以指定命令--out file.js的选项tsc。这将编译所有 .ts 文件并生成单个 JavaScript 输出文件。这允许您使用 Typescript 关键字将代码拆分为单独 .ts 文件中的模块module,并将它们合并以优化部署。
您可以更改从 TypeScript 导出到 AMD 的模块格式。需要 RequireJS 来加载这些模块。还有 RequireJS 的插件,它们除了加载模块之外还可以做其他事情,例如异步加载文本文件
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |