看起来TypeScript有一个很好的模块系统,但是这是否取代requirejs之类的东西呢?换句话说,当你“编译”一个打印脚本包时,它是否会为你处理所有的依赖关系解析?例如,将不胜感激!TypeScript包管理
14
A
回答
16
TypeScript没有运行时模块加载器。您仍然需要提供一个模块加载器以在运行时使用,例如需要js。 TypeScript支持生成与commonJS(用于node.js脚本)和AMD加载器(例如requireJS)兼容的JavaScript代码。指定在“--module”中使用哪一个传递给具有“amd”或“commonjs”的编译器。
这里是你如何在打字稿导出模块:
export module depModule {
export class A {
}
}
,这里是生成的JavaScript代码--module AMD开关:
define(["require", "exports"], function(require, exports) {
(function (depModule) {
var A = (function() {
function A() { }
return A;
})();
depModule.A = A;
})(exports.depModule || (exports.depModule = {}));
})
3
打字稿可以发出代码,将与合作AMD兼容的依赖装载器,比如像require这样的requirejs或commonjs环境。你可以用编译器的--module选项来控制它。编译器本身不会在运行时处理依赖关系解析,这取决于您的工作,但它在编译时尝试解决依赖关系,因此它可以为您提供类型信息。
例如,您可以看到在CodePlex的测试目录中使用模块的项目示例,例如this one。编译这些测试项目的输出是.js文件,可以使用例如requirejs(如果传递--module amd)或Node(如果传递--module commonjs)加载.js文件。
2
如果您的应用程序将仅由打字稿模块/文件组成,则可以不使用模块加载程序或其他依赖项管理。您需要将所有依赖关系包含在注释引用中,并使用编译器的--out选项。例如:
tsc --out compiled.js app.ts
这将投入compiled.js为app.ts及其所有依赖性,包括依赖的依赖所产生的JS。然后可以将生成的文件直接包含在带有脚本标签的html文件中。它也可以被缩小。不支持在运行时加载模块
相关问题
- 1. TypeScript资产管理器
- 2. PHP包管理
- 3. NuPack包管理
- 4. 包内存管理
- 5. 多包管理器
- 6. C++的包管理
- 7. 包的NodeJS管理
- 8. Node.js Typescript包含
- 9. 如何将我的自定义npm包添加到TypeScript定义管理器?
- 10. 如何使用NuGet包管理器访问ASP.NET 5中的TypeScript定义?
- 11. Telerik平台管理npm包
- 12. 流星 - 管理包:翻译
- 13. Symfony2用户管理器包?
- 14. 帮助RubyGems(包管理器)
- 15. NuGet包管理器错误
- 16. python组/用户管理包
- 17. PyDev包资源管理器
- 18. 流星管理面板包
- 19. 管理包括声明
- 20. Vim的包(插件)管理
- 21. Guile有包管理器吗?
- 22. 扩展背包管理ArticleCrudController
- 23. 主动管理:包括JavaScript
- 24. MODX包管理未显示
- 25. SCOM管理包教程
- 26. 包管理器DNF破坏
- 27. laravel管理员包(freezenode),login_path
- 28. 管理JavaScript包含文件
- 29. Emacs的软件包管理
- 30. Jam.js如何管理`shim`包