npm run eject
コマンドは何をしますか? start、build、testのような他のコマンドが何をするのか理解していますしかし、取り出しについてはわかりません。
create-react-appは、内部で使用しているすべてのnpmモジュールをカプセル化しているので、あなたのpackage.jsonは、心配することなく非常にクリーンでシンプルになります。
しかし、もっと複雑なことをやってみたり、create-react-appが相互作用する可能性のあるモジュールを内部で使ってインストールしたい場合、それらの新しいモジュールは利用可能なものを知っている必要があります。 -appそれらを抽象化解除します。
本質的に、それがreact-scripts eject
の動作です。フードの下に何がインストールされたのかを隠すのをやめて、代わりにそれらをプロジェクトのpackage.jsonに取り出してみんなが見ることができるようにします。
npm run eject
注:これは一方向の操作です。一度eject
を入力すると、戻ることはできません!
ビルドツールと設定の選択に満足できない場合は、いつでもeject
を使用できます。このコマンドはあなたのプロジェクトからシングルビルドの依存関係を取り除きます。
代わりに、すべての設定ファイルと推移的な依存関係(Webpack、Babel、ESLintなど)をプロジェクトに直接コピーするので、それらを完全に制御できます。 eject
を除くすべてのコマンドはまだ機能しますが、コピーされたスクリプトを指すので、それらを微調整できます。この時点であなたはあなた自身の上にいます。
eject
を使う必要はもうありません。キュレーションされた機能セットは、小規模および中規模の導入に適しています。この機能を使用する義務はありません。ただし、このツールは、準備が整ったときにカスタマイズできない場合は役に立ちません。
排出する代わりの方法
イジェクト を使うと何でもカスタマイズできますが、それ以降は自分で設定とスクリプトを管理する必要があります。これに似たようなプロジェクトがたくさんあると、これは大変な作業になります。そのような場合はイジェクトする代わりにreact-scripts
や他の必要なパッケージをforkすることをお勧めします。 この記事 では、その方法について詳しく説明します。この問題については、 を参照してください。