Asp.net mvc 打印脚本捆绑和缩小?
假设我有两个文件 AFile.tsAsp.net mvc 打印脚本捆绑和缩小?,asp.net-mvc,typescript,asp.net-mvc-5,Asp.net Mvc,Typescript,Asp.net Mvc 5,假设我有两个文件 AFile.ts /// <reference path="ZFile.ts" /> new Z().Foo(); 是否有一种方法可以按照所需的顺序在单个js文件中生成所有脚本(需要ZFile在AFile之前获得Z的定义)?使用--out参数 tsc AFile.ts ZFile.ts --out single.js typescript编译器将自动为您执行依赖项导航 在生成后事件中,我添加了对TypeScript编译器的调用 tsc "..\Content\S
/// <reference path="ZFile.ts" />
new Z().Foo();
是否有一种方法可以按照所需的顺序在单个js
文件中生成所有脚本(需要ZFile
在AFile
之前获得Z
的定义)?使用--out参数
tsc AFile.ts ZFile.ts --out single.js
typescript编译器将自动为您执行依赖项导航 在生成后事件中,我添加了对
TypeScript
编译器的调用
tsc "..\Content\Scripts\Start.ts" --out "..\Content\Scripts\all.js"
在我添加的bundle配置中
bundles.Add(new ScriptBundle("~/scripts/all").Include("~/Content/Scripts/all.js"));
在我添加的\u Layout.cshtml
文件上
@Scripts.Render("~/Scripts/all")
有了这些,我得到了
<script src="/Scripts/all?v=vsTcwLvB3b7F7Kv9GO8..."></script>
您还可以使用Web Essentials或抓取内容并在其他地方缩小。假设您的所有ts文件都直接或间接位于一个名为say'ts'的文件夹下,您可以编写一个tt脚本,将所有.js文件(但不是min.js)合并到一个文件myApp.js中,并将所有min.js文件合并到myApp.min.js中 要获得文件的顺序,您可以通过以下方式处理子文件夹:
string[] FolderOrder =
{
@"libs\utils\",
@"libs\controls\",
@"app\models",
@"app\viewmodels",
@".",
};
现在VS Typescript扩展支持合并到一个文件。
确保您已经安装了扩展
工具->扩展和更新
(默认情况下VS2015已安装)
转到项目属性并选中将JavaScript输出合并到文件中
:
重要的是要有//
(如问题中所述),它有助于tsc
在合并之前按依赖项排序文件
然后,对于最小化,可以像往常一样使用捆绑包:
bundles.Add(new ScriptBundle("~/bundles/finale").Include("~/js/all.js"));
以及
@Scripts.Render("~/bundles/finale")
如何阻止它在保存时自动编译?您必须指定每个文件还是可以使用通配符?您可以使用
IncludeDirectory()
来包含所有文件:-)另请参见:在捆绑包中使用.include(“~/Content/Scripts/all.ts”)?什么是tt脚本?这是否也适用于其他模块类型,如System?是否可以使用它来代替模块加载器,如webpack或babel,即节点包?此UI在我的机器上被禁用。知道为什么吗?另外,在构建过程中,这会从TS文件中构建JS文件。是否有一种方法可以通过bundle配置即时执行此操作?:^)
bundles.Add(new ScriptBundle("~/bundles/finale").Include("~/js/all.js"));
@Scripts.Render("~/bundles/finale")