看起來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`包