現在、ts ファイルを 1 つの ts ファイルにまとめようとしています。問題は、以下のコードが期待どおりに動作しないことです。sourceRoot を使用して、ソースを取得できる唯一の場所を設定しようとしましたが、うまくいきませんでした。ディレクトリの前に . を付けることを試しましたが、それでもどこからでも取得されます :(
{
"compilerOptions": {
"target": "ES5",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"out": "www/js/app.js",
"sourceMap": true,
"sourceRoot": "www/app"
}
}
www/app ビルド内にないものも含めたすべてのファイル:(
今のところ、ファイルを手動で指定する方法に戻りました。
{
"compilerOptions": {
"target": "ES5",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"out": "www/js/app.js",
"sourceMap": true
},
"files": [
"./www/app/app.ts",
"./www/app/menu/menuController.ts",
"./www/app/playlists/playlistsController.ts"
]
}
ソースディレクトリを www/app のみに制限することは可能ですか?
ありがとう
ベストアンサー1
この質問は少し古いものですが、ここで言及されている TypeScript コンパイラー オプションの一部は、必ずしも質問の解決に役立つとは限りません。検索している人rootDir
や同様の人 (私のような人) にとっては、言及されているオプションと解決に関連するオプションを明確にすることが役立つかもしれません。
すべてのファイルを1つのファイルに出力します
✅ 使用outFile
❌ 使用しないでくださいout
(非推奨)
背景:
宛先ディレクトリにビルドする場合は、 を選択しますoutDir
。コンパイラオプションさらに詳しい情報については。
特定のディレクトリからのみファイルを出力する
✅ tsconfig でfiles
//include
を使用するexclude
❌ 使用しないでくださいrootDir
説明:
コンパイラは、すべての入力ファイルを
file
/include
/exclude
プロパティを見る- 次の
import
文 - 以下
///<reference .. />
(もうそれほど重要ではないはずです)
これらのオプションが指定されていない場合は、TypeScriptプロジェクトルート(tsconfig.jsonで指定)内のすべてのファイルが含まれます。edimport
モジュールは自動的にコンパイラによって組み込まれているかどうかに関係なく、file
/ include
/ exclude
- それらのよくある質問入力ファイルはすべて組み合わされて、ビルドされるファイルのエンベロープになります。設定方法については、tsconfig.json を参照してfile
くださいinclude
。exclude
ドキュメント@TSV の回答も考慮してください。
ルートディレクトリ
rootDir
を制御する出力ディレクトリ構造はoutDir
、ないコンパイラを指定するために使用入力使い方は(引用):
すべての入力ファイル (つまり、.ts/.tsx ファイル) に対して、一致する出力 (.js/.jsx ファイル) を生成する必要があります。生成された出力ファイルのファイル パスを把握するために、入力から "rootDir" を切り取り、その前に "outDir" を追加します。
したがって、rootDir
上記のすべての入力ソースを含むディレクトリが必要です。そうでない場合は、
エラー TS6059: ファイルは 'rootDir' の下にありません。'rootDir' にはすべてのソース ファイルが含まれている必要があります
を省略するとrootDir
、コンパイラは手元にあるすべての入力ファイルを考慮して適切なディレクトリを自動的に計算します。したがって、必ずしも設定する必要はありません。
ソースルート
このオプションはソースマップ/デバッグにのみ関連しており、質問の範囲では省略できます。これは、ソースファイルが実行時と設計時で異なる場所にある場合に使用されます。コンパイラは、ソースマップファイル内のソースへのパスを実行時のパスと一致するように調整します(コンパイラオプション)。
そうすれば、少しは状況が明確になると思います。