2 つのファイルがあるとします。
AFile.ts
/// <reference path="ZFile.ts" />
new Z().Foo();
ZFile.ts
class Z
{
Foo() { }
}
すべてのスクリプトを必要な順序で単一のファイルに生成する方法はありますか (の定義を取得する前にjs
必要です)。ZFile
AFile
Z
2 つのファイルがあるとします。
AFile.ts
/// <reference path="ZFile.ts" />
new Z().Foo();
ZFile.ts
class Z
{
Foo() { }
}
すべてのスクリプトを必要な順序で単一のファイルに生成する方法はありますか (の定義を取得する前にjs
必要です)。ZFile
AFile
Z
ビルド後のイベントで、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>
これは、すべてのスクリプトを 1 つのファイルにまとめたものです。
コンパイラは縮小しません。バンドルを使用し、リリースまたはセットでコンパイルする必要があります
BundleTable.EnableOptimizations = true;
Web Essentials を使用するか、コンテンツを取得して別の場所でミニファイすることもできます。
VS Typescript 拡張機能は、1 つのファイルへのマージをサポートするようになりました。
拡張機能がインストールされていることを確認してください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")
すべての ts ファイルが直接的または間接的に「ts」というフォルダーの下にあると仮定すると、すべての .js ファイル (ただし min.js ではない) をファイル myApp.js とすべての min にマージする tt スクリプトを作成できます。 js ファイルを myApp.min.js に追加します。
ファイルの順序を取得するには、次のようにサブフォルダーを処理できます。
string[] FolderOrder =
{
@"libs\utils\",
@"libs\controls\",
@"app\models",
@"app\viewmodels",
@".",
};