[TypeScript][QuickRun] Reference Pathから自動でコンパイルオプション生成

前回の記事で TypeScriptでのQuickRunの設定を書いたが、どうせならreference pathから自動でコンパイルオプションを生成するようにしたら いんじゃね?って思って変更しました。

TypeScriptファイルの先頭15行以内にあるreferenceを読み込んで、コンパイルオプションに追加してます。

例) 先頭15行以内に以下が含まれてる場合

1
2
///<reference path="_lib.ts"/>
///<reference path="_file.ts"/>

コンパイルオプションは以下になる

1
'%c --nolib %s _lib.ts _file.ts --out %s:p:r.js'

ちなみに’–nolib’ を指定しているのは標準の’lib.d.ts’を拡張しているので、標準のは読み込んで欲しくないからです。

また、最終的にはwsh(JScript)として実行したいため、’OP:’の行指定によりコンパイル後のjsファイルに JScriptとして実行するためのヘッダファイルを付加しています。

例)

1
// OP: "pushd"

の場合、下記のヘッダがjsファイルに付加され、拡張子が’cmd’になります。

1
2
3
4
5
6
7
@if(0)==(0) ECHO OFF
    pushd "%~dp0" > nul
    CScript.exe //NoLogo //E:JScript "%~f0" %*
    popd > nul
pause
GOTO :EOF
@end
1
// OP: "nopushd"

上記の場合、下記のヘッダがjsファイルに付加されます。

1
2
3
4
5
@if(0)==(0) ECHO OFF
    CScript.exe //NoLogo //E:JScript "%~f0" %*
pause
GOTO :EOF
@end

Comments