私はVisual Studio Codeを使用しており、かなり一般的なプロジェクト構造を持っています:
├── client/
│ ├── tsconfig.json
├── shared/
├── server/
│ ├── tsconfig.json
├── project.json
2つのtsconfigファイルには異なる設定があります(例:client/
がES5をターゲットに、server/
がES6をターゲットにしています)。
問題は、両方のプロジェクトに共有ディレクトリを含めることです。 exclude
オプションではtsconfig.jsonよりも上位のディレクトリにあるフォルダーを含めることができないため、tsconfigを使用してこれを行うことはできません。また、files
グロブをサポートしていないため、最新のファイルのリスト。
共有フォルダをtscに追加することで問題なくコンパイルできることに注意してください。VisualStudio Code IDEがインテリセンスなどの共有コードを認識するために必要なものです。
filesGlob を待つ唯一のオプションですか?
ルートに単一のtsconfig.json
を使用します。そして、プロジェクトごとに拡張します(バックエンドtsconfig.server.json
、フロントエンドtsconfig.webpack.json
)。
tsconfig.json
include: ['src']
は、すべてのファイルがIDEで型チェックされるようにしますtsconfig.server.json
exclude: ['src/app']
フロントエンドファイルtsconfig.webpack.json
exclude: ['src/backend']
バックエンドファイル├── src/
│ ├── app/ < Frontend
│ ├── server/ < Backend
│ ├── common/ < Shared
├── tsconfig.json
├── tsconfig.server.json
├── tsconfig.webpack.json
tsconfig.json
{
"compilerOptions": {
"noImplicitAny": true,
"strictNullChecks": true
},
"include": [
"src"
]
}
tsconfig.server.json
{
"extends": "./tsconfig.json",
"exclude": [
"src/app"
]
}
tsconfig.webpack.json
{
"extends": "./tsconfig.json",
"exclude": [
"src/server"
]
}
私はこれをここで答えました: tsconfig extension answer
答えの要点:
これを行うには、ベースのtsconfig.jsonファイルを拡張します。
ベースtsconfig.jsonのディレクトリを除外しないでください。TypeScriptが入力を解決できるはずです(node_modules/@ typesまたはタイピングモジュールを使用してこれが正しいことを知ってください)
例えば:
configs/base.json:
{
"compilerOptions": {
"noImplicitAny": true,
"strictNullChecks": true
}
}
tsconfig.json:
{
"extends": "./configs/base",
"files": [
"main.ts",
"supplemental.ts"
]
}
tsconfig.nostrictnull.json:
{
"extends": "./tsconfig",
"compilerOptions": {
"strictNullChecks": false
}
}
VSCodeの新しいバージョンはTypeScript 2をサポートし、これはinclude
オプションを使用してtsconfig.jsonのglobのサポートを追加します。 http://www.typescriptlang.org/docs/handbook/tsconfig-json.html を参照してください
FilesGlobを待つ唯一のオプションはありますか?
最適なオプション:
tsconfig.json
を使用するだけで、bundle(webpackのようなものを使用)client
(webpackがピックアップします共有への参照)。これは私がここで使用しているワークフローです https://github.com/alm-tools/alm ???? (単一のtsconfig.json https://github.com/alm-tools/alm/blob/master/src/tsconfig.json )
このワークフローは、alm設計ドキュメントでも説明されています。 https://basarat.gitbooks.io/alm/content/contributing/