web-dev-qa-db-ja.com

この「react-scripts eject」コマンドは何をしますか?

npm run ejectコマンドは何をしますか? start、build、testのような他のコマンドが何をするのか理解していますしかし、取り出しについてはわかりません。

55
Ishan Patel

create-react-appは、内部で使用しているすべてのnpmモジュールをカプセル化しているので、あなたのpackage.jsonは、心配することなく非常にクリーンでシンプルになります。

しかし、もっと複雑なことをやってみたり、create-react-appが相互作用する可能性のあるモジュールを内部で使ってインストールしたい場合、それらの新しいモジュールは利用可能なものを知っている必要があります。 -appそれらを抽象化解除します。

本質的に、それがreact-scripts ejectの動作です。フードの下に何がインストールされたのかを隠すのをやめて、代わりにそれらをプロジェクトのpackage.jsonに取り出してみんなが見ることができるようにします。

100
casieber
npm run eject

注:これは一方向の操作です。一度ejectを入力すると、戻ることはできません!

ビルドツールと設定の選択に満足できない場合は、いつでもejectを使用できます。このコマンドはあなたのプロジェクトからシングルビルドの依存関係を取り除きます。

代わりに、すべての設定ファイルと推移的な依存関係(Webpack、Babel、ESLintなど)をプロジェクトに直接コピーするので、それらを完全に制御できます。 ejectを除くすべてのコマンドはまだ機能しますが、コピーされたスクリプトを指すので、それらを微調整できます。この時点であなたはあなた自身の上にいます。

ejectを使う必要はもうありません。キュレーションされた機能セットは、小規模および中規模の導入に適しています。この機能を使用する義務はありません。ただし、このツールは、準備が整ったときにカスタマイズできない場合は役に立ちません。

ドキュメントへのリンク


排出する代わりの方法

イジェクト を使うと何でもカスタマイズできますが、それ以降は自分で設定とスクリプトを管理する必要があります。これに似たようなプロジェクトがたくさんあると、これは大変な作業になります。そのような場合はイジェクトする代わりにreact-scriptsや他の必要なパッケージをforkすることをお勧めします。 この記事 では、その方法について詳しく説明します。この問題については、 を参照してください。

32
Sergii