web-dev-qa-db-ja.com

「開始」時にtsconfig.jsonを上書きしないようにreact-scriptを設定する方法

私は現在create-react-appをbootstrap私のプロジェクトの1つに使用しています。 create-react-appによって:

"baseUrl": "./src",
"paths": {
  "interfaces/*": [
    "common/interfaces/*",
  ],
  "components/*": [
    "common/components/*",
  ],
},

ただし、yarn startを実行するたびに、基本的にreact-scripts startが実行され、変更が削除され、デフォルトの構成が再度生成されます。

Create-react-appにカスタム構成を使用するように指示するにはどうすればよいですか?

14
CodeIntern

this issue からのアドバイスを使用してこれを行うことができました。

スクリプトが好む構成オプションを別のファイル(たとえば、paths.json)で削除し、extendsディレクティブを介してtsconfig.jsonから参照するように設定します。

paths.json:

{
  "compilerOptions": {
  "baseUrl": "./src",
  "paths": {
    "interfaces/*": [ "common/interfaces/*"],
    "components/*": [ "common/components/*"],
    }
  }
}

tsconfig.json

{
  "extends": "./paths.json"
   ...rest of tsconfig.json
}
8
Glenn

Create Reactアプリは現在baseUrlをサポートしていません。ただし、回避策があります... webpackとIDEの両方に対してbaseUrlをセットアップするには、以下を実行する必要があります。

  1. 次のコードで.envファイルを作成します。
NODE_PATH=./
  1. 内部に次のコードを含むtsconfig.paths.jsonファイルを作成します。
{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "src/*": ["*"]
    }
  }
}
  1. tsconfig.jsonに次の行を追加します
{
  "extends": "./tsconfig.paths.json",
  ...
}
5
Microcipcip

できません。いつできるのかわかりません。 baseUrlとパスを使用して、相対的なインポートを回避しようとしましたが、ご覧のとおり、特定の値を意図的に削除しています。 「(まだ)」は勇気づけられますが、(sigh)彼らが公式にいつサポートするかを知っています。 このgithubにサブスクライブする これが変更された場合に通知することをお勧めします。

The following changes are being made to your tsconfig.json file:
      - compilerOptions.baseUrl must not be set (absolute imports are not supported (yet))
      - compilerOptions.paths must not be set (aliased imports are not supported)
2
GentryRiggen