2017-01-31 1 views
2

私は活字体に新たなんだと私は私のAPIに接続するために私のAPIの名前空間api.tsファイル内の関数を持っている:活字体 - インポートファイルと一つのファイルにコンパイル

namespace api 
{ 
    export function connect() : boolean 
    { 
     return false; 
    } 
} 

これは私のtest.ts

の内容です
///<reference path="api.ts"/> 
api.connect(); 

活字体は、二つのファイルにこれをコンパイル:api.jstest.jstest.js,というファイルにコンパイルすることはできますが、otherPage.tsを別のバンドルにコンパイルすることは可能ですか?

注:

これは私のファイル構造である:

- test.ts 
- api.ts 
- otherPage.ts 

これは所望の出力です:tsc --watch

- test.js (api.ts and test.ts compiled into one file) 
- otherPage.js 

これは私がファイルをコンパイルオートのために実行するコマンドです。私は、私が含めるファイルに固有のこのコマンドを変更する必要がないソリューションを好む。

私はapi.tsを複数のファイルに使用していますので、tsというファイルを1つ作成することはできません。

一時的な回避策:一時的な回避策として

、私はすべてのファイルにapi.tsが含まれます。これはJavaScriptにとってTypeScriptをコンパイルした後、Google Closure Compilerでjavascriptファイルをコンパイルするため、大きな問題ではありません。

私は、Visual Studioのコードを使用しているので、私は私のtasks.jsonでこれを自動化することができます。それを実行するための

{ 
    "version": "0.1.0", 
    "command": "tsc", 
    "showOutput": "silent", 
    "windows": { 
     "command": "tsc.cmd" 
    }, 
    "args": 
    [ 
     "res/ts/modules/api.ts", 
     "${file}", 
     "--outFile", "res/js/${fileBasenameNoExtension}.js", 
     "--listFiles", "true" 
    ], 
    "problemMatcher": "$tsc" 
} 

を押し、Ctrl + Bを。

+0

なぜtsファイルを1つ作成しないのですか? –

+0

@AlexeyObukhov私は複数のファイルで 'api.ts'を使用しています。 – user7353781

答えて

0

webpack、gulpなどでソースをバンドルすることができます。ドキュメント内のチュートリアル次 https://www.typescriptlang.org/docs/handbook/integrating-with-build-tools.html

はその後

npm install -g gulp

、 は、このディレクトリに、あなたは

npm initを実行して、たとえばmy-appのために、ディレクトリを作成することができ、上記のリンク

npm install gulp gulp-typescript --save-dev

srcディレクトリとgulpfile.jsファイルを作成し、ペースト次のコード

gulpfile.jsにするvar一気は=( "がぶ飲み")を必要とします。 var ts = require( "gulp-typescript");

gulp.task("default", function() { 
    var tsResult = gulp.src("src/*.ts") 
     .pipe(ts({ 
       noImplicitAny: true, 
       out: "output.js" 
     })); 
    return tsResult.js.pipe(gulp.dest("built/local")); 
}); 

はあなたがtsconfig.json--outFileオプションを使用する必要がWindowsの

+0

もう少し詳しい情報を教えてください。私はwebpack、gulpなどに慣れていません – user7353781

+0

新しい更新されたコメントを確認してください。 –

+0

この解決策で 'otherPage.ts'を' output.js'から除外しますか? – user7353781

1

TerminalまたはCMDのようなコマンドラインでgulpのコマンドを実行し、その後、SRCであなたのtsソースを置く:

"compilerOptions": { 
     "outFile": "dist/output.js" 
    } 

またはそれを渡すをこのようなコンパイラに:

tsc test.ts --outFile dist/output.js 
+0

これは、**すべての**ファイルを 'otherPage.ts'を含む1つのファイルにコンパイルします。私は 'test.ts'と' api.ts'を1つのファイルにコンパイルするだけです。 – user7353781

+0

私はそれが 'tsc'だけでは可能ではないと思います。異なるファイルセットで 'tsc'を複数回実行できますが、理想的な解決策ではありません。モジュールバンドルラーを使用する必要があります。 –

+0

あなたは 'webpack'を検討していますか? –