2013-06-29 10 views
17

は、私は2つのファイルタイプスクリプトのバンドルと縮小?

AFile.ts

/// <reference path="ZFile.ts" /> 
new Z().Foo(); 

ZFile.ts

class Z 
{ 
    Foo() { } 
} 

を持っていると仮定し、それが必要とするために、単一jsファイル内のすべてのスクリプトを生成する方法はあります(定義Zを得るためにはAFileの前にZFileが必要ですか?

答えて

10

を今すぐVS活字拡張が一つのファイルにマージをサポートしています。
プロジェクトのプロパティに

enter image description here

ゴー(VS2015は、デフォルトではそれを持っている)あなたは拡張子Tools -> Extensions and Updatesがインストールされていることを確認し、Combine JavaScript output into fileを確認してください。 enter image description here

重要な問題になっているよう/// <reference />を(持っています)、それはtscがマージの前に依存関係によってファイルを並べ替えるのを助けます。そして、最小化バンドルの


は、いつものように使用することができます。
bundles.Add(new ScriptBundle("~/bundles/finale").Include("~/js/all.js")); 

とビューの

@Scripts.Render("~/bundles/finale") 
+0

これはSystemのような他のモジュールタイプでも使えますか? webpackやbabelのようなモジュールローダーの代わりに、これを使うことは可能ですか?ノードパッケージ? –

+0

このUIは自分のマシンでは無効になっています。どんな考え? – user2173353

+0

また、ビルド中にJSファイルからTSファイルを作成します。バンドル設定でこれを実行する方法はありませんか? :^) – user2173353

4

--outパラメータを使用します。

tsc AFile.ts ZFile.ts --out single.js 

typescriptコンパイラは自動的に依存関係ナビゲーションを行います。ポストビルドイベントで

16

は、私は私が

@Scripts.Render("~/Scripts/all") 

として追加_Layout.cshtmlファイルで

bundles.Add(new ScriptBundle("~/scripts/all").Include("~/Content/Scripts/all.js")); 

を追加バンドル構成でTypeScriptコンパイラ

tsc "..\Content\Scripts\Start.ts" --out "..\Content\Scripts\all.js" 

への呼び出しを追加しました私が持っているのは

<script src="/Scripts/all?v=vsTcwLvB3b7F7Kv9GO8..."></script> 

私のすべてのスクリプトは1つのファイルにあります。


コンパイラが縮小化しない、あなたはまた、ウェブのEssentialsを使用するか、内容をつかみ、どこか別の場所minifing縮小化することができますバンドルを使用し、リリースでコンパイルまたは

BundleTable.EnableOptimizations = true; 

を設定する必要があります。

+0

どのように自動に保存でコンパイルからそれを止めるのですか?それぞれのファイルを指定する必要がありますか、またはワイルドカードを使用できますか? – formatc

+0

'IncludeDirectory()'を使ってすべてのファイルを含めることができます:-) 参照:http://stackoverflow.com/questions/12926830/typescript-compiling-as-a-single-js-file –

+0

それは間違っていますか? .Include( "〜/ Content/Scripts/all.ts"))を持つバンドルに含まれています。 ? – Revious

2

すべてのtsファイルがsay 'ts'というフォルダの下に直接または間接的にあると仮定すると、すべての.jsファイル(min.jsではなく)をmyApp.jsというファイルにマージしたttスクリプトを書くことができますあなたのmin.jsファイルをmyApp.min.jsにコピーします。あなたは、このようにサブフォルダを処理することができ、ファイルの順序を取得するには

string[] FolderOrder = 
{ 
    @"libs\utils\", 
    @"libs\controls\", 
    @"app\models", 
    @"app\viewmodels", 
    @".", 
}; 
+0

ttスクリプトとは –

関連する問題