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


回答:


156

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

ただし、より複雑な処理を開始して、create-react-appが内部で使用しているモジュールと相互作用する可能性のあるモジュールをインストールする場合は、それらの新しいモジュールが何が利用可能であるかを知る必要があります。つまり、create-reactが必要です。 -それらの非抽象化アプリ。

それは、本質的に、何をするかreact-scripts ejectです。フードの下にインストールされているものを非表示にするのをやめ、代わりにそれらをプロジェクトのpackage.jsonに排出して、全員に表示します。


2
@Sergiiの回答の方が正確です。Ejectは、package.jsonとNPMモジュールだけでなく、他のもの(babel、webpack、eslintなど)も含みます。github.com/facebook/create
Bruno Monteiro

67
npm run eject

注:これは一方向の操作です。いったんeject、戻ることはできません!

ビルドツールと構成の選択に満足できない場合は、ejectいつでもできます。このコマンドは、プロジェクトから単一のビルド依存関係を削除します。

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

使用する必要はありませんeject。厳選された機能セットは、小規模および中規模の展開に適しており、この機能を使用する義務を負うべきではありません。ただし、準備ができているときにカスタマイズできない場合、このツールは役に立たないことを理解しています。

ドキュメントへのリンク


排出の代替

イジェクトでは何でもカスタマイズできますが、それ以降は、構成とスクリプトを自分で保守する必要があります。同様のプロジェクトが多数ある場合、これは困難な場合があります。このような場合、イジェクトする代わりに、フォークreact-scriptsやその他の必要なパッケージを用意することをお勧めします。この記事では、その方法について詳しく説明します。あなたはこの問題でより多くの議論を見つけることができます


追加を使用して戻ることができますnpm install react-scripts
Ashish Kamble

私はこれらのアプローチの両方に完全に不満を持っています。あなたには明らかな理由もなく古代の依存関係があります。どちらのアプローチも、これらの問題を隠し、開発作業の焦点をプロジェクトからデッドエンドコードに移します。適切な依存関係管理に代わるものはありません。
アルパドMagosányi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.