假设我有两个文件TypeScript捆绑和缩小?
AFile.ts
/// <reference path="ZFile.ts" />
new Z().Foo();
ZFile.ts
class Z
{
Foo() { }
}
有没有一种方法来生成一个js
文件中的顺序所有脚本它需要(需要ZFile
之前AFile
得到Z
)的定义?
假设我有两个文件TypeScript捆绑和缩小?
AFile.ts
/// <reference path="ZFile.ts" />
new Z().Foo();
ZFile.ts
class Z
{
Foo() { }
}
有没有一种方法来生成一个js
文件中的顺序所有脚本它需要(需要ZFile
之前AFile
得到Z
)的定义?
现在VS打字稿扩展支持合并到一个文件中。
请确保您已经安装了扩展Tools -> Extensions and Updates
(VS2015默认有它)
转到项目属性,并检查Combine JavaScript output into file
:
重要的是要有/// <reference />
(如问题),它可以帮助tsc
在合并之前通过依赖关系排序文件。
bundles.Add(new ScriptBundle("~/bundles/finale").Include("~/js/all.js"));
,并鉴于
@Scripts.Render("~/bundles/finale")
使用--out参数。
tsc AFile.ts ZFile.ts --out single.js
打字稿编译器会自动为您做相关性导航。
在生成后事件我添加了一个调用TypeScript
编译
tsc "..\Content\Scripts\Start.ts" --out "..\Content\Scripts\all.js"
在我加入
bundles.Add(new ScriptBundle("~/scripts/all").Include("~/Content/Scripts/all.js"));
在_Layout.cshtml
文件我加
@Scripts.Render("~/Scripts/all")
而且同捆配置我得到了
<script src="/Scripts/all?v=vsTcwLvB3b7F7Kv9GO8..."></script>
这是我所有的脚本在一个单一的文件。
编译器不会再压缩,你必须使用包和汇编发布或设置
BundleTable.EnableOptimizations = true;
您还可以再压缩使用Web要点或抓住内容和minifing别处。
假设所有的ts文件都直接或间接地位于名为say'ts'的文件夹下,您可以编写一个将所有.js文件(但不是min.js)合并到文件myApp.js和所有文件你的min.js文件放入myApp.min.js。
要获得你可以这样处理子文件的顺序:
string[] FolderOrder =
{
@"libs\utils\",
@"libs\controls\",
@"app\models",
@"app\viewmodels",
@".",
};
什么是tt脚本? –
这也适用于其他模块类型,如系统?是否有可能使用这个而不是像webpack或babel这样的模块加载器,即。节点包? –
此用户界面在我的机器上被禁用。任何想法为什么? – user2173353
此外,这会在构建期间从TS文件构建JS文件。是否有办法通过捆绑配置来实现这一点? :^) – user2173353