Open5
Tips: tsconfig.json
include
, exclude
, declarationDir
といった相対指定パスの起点はそのconfigファイル
These filenames are resolved relative to the directory containing the tsconfig.json file.
extendsが絡むと紛らわしいが、常にその記述が書かれた(originated in)ファイルからの相対パスとなる。
All relative paths found in the configuration file will be resolved relative to the configuration file they originated in.
baseUrl
はほとんどの場合指定不要
baseUrlは非相対パスを解決するための機能で、それ以外の使用は非推奨っぽい。
以前はpaths
使う時に必須だったが4.1からは不要になったらしく、pathsはbaseUrlがなければtsconfig自体からの相対パスとなる。
extendsは同じフィールドはマージせず上書きする
配列指定のオプション(includes
, excludes
, types
とか)はマージされるわけではないので、再定義したり上書きしたりが必要になる。
*
(グロブパターン)に含まれる拡張子
デフォルトで.ts
.tsx
.d.ts
グロブパターンがファイルの拡張子を含まない場合、サポートされる拡張子のみが含まれるようになります(例:.ts、.tsxと.d.tsはデフォルトでインクルードされ、.jsと.jsxはallowJsが設定された場合のみインクルードされます)。
.vue
のような拡張子はデフォで含まれないので明示的に含める必要がある。
最終的に使われる設定を見る
tsc --showConfig
とすることで実際にtscが使用する設定をプリントできる。
特にfiles
フィールドにincludes
から計算された実際のファイルが入るのでどのファイルが含まれるか確認するのに便利。
configの指定は通常のtsc -pと同じ
tsc -p client/tsconfig.client.json --showConfig
# あるいはファイル名がtsconfig.jsonなら、含まれるディレクトリでも可
# tsc -p client --showConfig