93

私は Visual Studio Code を使用しており、かなり一般的なプロジェクト構造を持っています。

├── client/
│   ├── tsconfig.json
├── shared/
├── server/
│   ├── tsconfig.json
├── project.json

2 つの tsconfig ファイルの設定は異なります (たとえば、client/ターゲット ES5 の下にあるファイルとserver/ターゲット ES6 の下にあるファイル)。ルート ディレクトリには tsconfig がないことに注意してください。

問題は、共有ディレクトリを両方のプロジェクトに含めたいということです。excludeこのオプションでは、tsconfig.json よりも上位のディレクトリにあるフォルダーを含めることができないため、tsconfig を使用してこれを行うことはできfilesません。グロブをサポートします。

共有フォルダーを tsc に追加することで問題なくコンパイルできることに注意してください。必要なのは、Visual Studio Code IDE が intellisense などの共有コードを認識できるようにすることです。

filesGlobを待つ唯一のオプションですか?

4

5 に答える 5

79

最近では、vscode がこれをより適切にサポートしているため、はるかに簡単です。

すべてのコードが独立しているように、このディレクトリ構造を使用できます。

├── frontend/
│   ├── src/
│   │   ├── <frontend code>
│   ├── package.json
│   ├── tsconfig.json
├── shared/
│   ├── package.json
├── backend/
│   ├── src/
│   │   ├── <backend code>
│   ├── package.json
│   ├── tsconfig.json

次に、バックエンドとフロントエンドの両方でtsconfig.json:

{
  "compilerOptions": {
    "paths": {
      "~shared/*": ["../shared/*"]
    },
    "rootDirs": [
      "./src",
      "../shared"
    ]
  }
}

共有コードへのアクセスを許可するには、次のようにします。

import { Foo } from '~shared/foo';

古い回答

tsconfig.jsonルートにはシングルを使用します。そして、プロジェクトごとに拡張します (バックエンドtsconfig.server.json、フロントエンドtsconfig.webpack.json)。

  • tsconfig.json include: ['src']IDE ですべてのファイルのタイプチェックを確実に行うためのルート
  • tsconfig.server.json exclude: ['src/app']フロントエンド ファイルをバックエンドする
  • Frontend :tsconfig.webpack.json exclude: ['src/server']バックエンド ファイル

フォルダ構造

├── 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.webpack.json

{
  "extends": "./tsconfig.json",
  "exclude": [
    "src/app"
  ]
}

tsconfig.server.json

{
  "extends": "./tsconfig.json",
  "exclude": [
    "src/server"
  ]
}

もっと

レッスン例

于 2019-06-11T11:40:24.540 に答える
2

別のバリアントとしてnpm、次の実行でコマンドをバインドします。

{
   'start': '...',
   'buildFront': 'tsc -p tsconfig.someName.json'
}
于 2018-08-05T13:33:32.557 に答える
1

新しいバージョンの VSCode は Typescript 2 をサポートします。これを追加すると、tsconfig.json の glob のサポートがincludeオプションで追加されます。http://www.typescriptlang.org/docs/handbook/tsconfig-json.htmlを参照してください

于 2016-09-28T09:11:53.100 に答える