O que este comando “react-scripts eject” faz?

106

O que o npm run ejectcomando faz? Eu entendo o que outros comandos fazem, como iniciar, construir, testar. Mas nenhuma ideia sobre ejetar.

Ishan Patel
fonte
2
como verificar / verificar se este comando foi aplicado ou não?
AlexNikonov

Respostas:

156

create-react-app encapsula todos os módulos npm que está usando internamente, para que seu package.json seja muito limpo e simples sem você ter que se preocupar com isso.

No entanto, se você quiser começar a fazer coisas mais complexas e instalar módulos que podem interagir com os módulos que o create-react-app está usando nos bastidores, esses novos módulos precisam saber o que está disponível e o que não está, o que significa que você precisa criar-reagir -app des-abstraí-los.

Isso, em essência, é o que react-scripts ejectfaz. Ele vai parar de esconder o que está instalado sob o capô e, em vez disso, ejetará essas coisas no package.json do seu projeto para que todos vejam.

cassieber
fonte
2
A resposta @Sergii é mais precisa. Eject não é apenas sobre os módulos package.json e NPM, inclui outras coisas (babel, webpack, eslint, etc.) github.com/facebook/create-react-app/blob/master/packages/…
Bruno Monteiro
67
npm run eject

Nota: esta é uma operação unilateral. Depois de você eject, você não pode voltar!

Se você não estiver satisfeito com a ferramenta de construção e as opções de configuração, poderá fazê-lo ejecta qualquer momento. Este comando removerá a dependência única de compilação de seu projeto.

Em vez disso, ele copiará todos os arquivos de configuração e as dependências transitivas (Webpack, Babel, ESLint, etc) diretamente para o seu projeto para que você tenha total controle sobre eles. Todos os comandos, exceto ejectainda funcionarão, mas eles irão apontar para os scripts copiados para que você possa ajustá-los. Neste ponto, você está sozinho.

Você nunca precisa usar eject. O conjunto de recursos selecionados é adequado para implantações pequenas e médias, e você não deve se sentir obrigado a usar este recurso. No entanto, entendemos que esta ferramenta não seria útil se você não pudesse personalizá-la quando estiver pronto para ela.

link para documentação


Alternativas para ejetar

Ejetar permite que você personalize qualquer coisa, mas a partir desse ponto você tem que manter a configuração e os scripts você mesmo. Isso pode ser assustador se você tiver muitos projetos semelhantes. Nesses casos, em vez de ejetar, recomendamos o fork react-scriptse quaisquer outros pacotes de que você precisa. Este artigo aprofunda como fazer isso. Você pode encontrar mais discussão nesta questão.

Sergii
fonte
podemos voltar usando a adição novamentenpm install react-scripts
Ashish Kamble
Estou totalmente insatisfeito com ambas as abordagens. Você tem dependências antigas sem motivo aparente. Ambas as abordagens escondem esses problemas e desfocam os esforços de desenvolvimento do projeto para o código de beco sem saída. Não há substituto para o gerenciamento adequado de dependências.
Árpád Magosányi