TypeScript の tsconfig.json が効かない


以下のtsconfig.jsonを作って・・・

{
    "compilerOptions": {
    	"module": "commonjs",
    	"target": "es5",
	"sourceMap": true
    }
}

以下のようにtscを実行すると・・・

# tsc ./bin/www.ts

tsconfig.json の設定が反映されず、以下のエラーが出る。

error TS1148: Cannot compile external modules unless the '--module' flag is provided.
    • module はtsconfig.jsonで設定してるのに --module を指定するようにと怒られる。

tsconfig.json の設置場所が問題かと思ったが、
ちゃんとルートディレクトリに設置しているので問題なし。

原因はtscコマンドに /bin/www.ts という
コンパイルのエントリーファイルを引数として指定しているからっぽい。

なので、tsconfig.json に以下のように rootDir を追記して、
エントリーファイルも tsconfig.json で管理するようにする。

{
    "compilerOptions": {
    	"module": "commonjs",
    	"target": "es5",
	"sourceMap": true,
        "rootDir":"/vagrant/app/bin/www.ts"
    }
}

さらに、コンパイルコマンドを tsc のみにする。

# tsp

これでコンパイル成功。

VisualStudioCodeとかじゃなくて、
vim で書いて直接 tsc のコマンド叩いてたから、
変にハマったのかもしれない・・・。