Estou trabalhando com um projeto React, usando create-react-app
, e tenho duas opções para iniciar o projeto:
Primeira maneira:
npm run start
com a definição package.json
como esta:
"start": "react-scripts start",
Segunda maneira:
e npm start
Qual é a diferença entre esses dois comandos? E qual é o propósito do react-scripts start
?
Tentei encontrar a definição, mas encontrei um pacote com o nome e ainda não sei qual é o significado desse comando.
npm
você executa scripts como estenpm run scriptName
,npm start
também é uma abreviação denpm run start
react-scripts start
é o comando adequado para executar o aplicativo React no modo dev. Este comando é armazenado no package.json, assim você não precisa memorizá-lo e pode simplesmente digitar o habitualnpm run start
.npm start
é um atalho para o último.Respostas:
create-react-app e react-scripts
react-scripts
é um conjunto de scripts docreate-react-app
starter pack. O create-react-app ajuda você a iniciar projetos sem configurar, para que você não precise configurar seu projeto sozinho.react-scripts start
configura o ambiente de desenvolvimento e inicia um servidor, além de recarregar o módulo quente. Você pode ler aqui para ver o que tudo faz por você.Com o create-react-app, você tem os seguintes recursos prontos para uso.
scripts npm
npm start
é um atalho paranpm run start
.npm run
é usado para executar scripts que você define noscripts
objeto do seu package.jsonse não houver
start
chave no objeto scripts, o padrão seránode server.js
Às vezes, você deseja fazer mais do que os scripts de reação oferecem, nesse caso, você pode fazer
react-scripts eject
. Isso transformará seu projeto de um estado "gerenciado" para um estado não gerenciado, onde você tem controle total sobre dependências, compila scripts e outras configurações.fonte
npm run build
. isso criará uma pasta de compilação. Nesta pasta, você pode servir. por exemplo,npm install -g serve
e depoisserve -s build
facebook.github.io/create-react-app/docs/deploymentComo Sagiv bg apontou, o
npm start
comando é um atalho paranpm run start
. Eu só queria adicionar um exemplo da vida real para esclarecer um pouco mais.A configuração abaixo vem do
create-react-app
repositório do github. Opackage.json
define um monte de scripts que definem o fluxo real.Para maior clareza, adicionei um diagrama.
As caixas azuis são referências a scripts, todos os quais você pode executar diretamente com um
npm run <script-name>
comando. Mas como você pode ver, na verdade existem apenas 2 fluxos práticos:npm run start
npm run build
As caixas cinzas são comandos que podem ser executados na linha de comando.
Então, por exemplo, se você executar
npm start
(ounpm run start
) que realmente se traduz nonpm-run-all -p watch-css start-js
comando, que é executado a partir da linha de comando.No meu caso, eu tenho esse
npm-run-all
comando especial , que é um plugin popular que procura por scripts que começam com "build:" e executa todos esses. Na verdade, eu não tenho nenhum que corresponda a esse padrão. Mas também pode ser usado para executar vários comandos em paralelo, o que ocorre aqui, usando o-p <command1> <command2>
switch. Então, aqui ele executa 2 scripts, ou seja,watch-css
estart-js
. (Os últimos scripts mencionados são observadores que monitoram as alterações nos arquivos e só terminam quando eliminados.)A
watch-css
garante que os*.scss
arquivos são convertidos para*.css
arquivos, e olha para futuras atualizações.Os
start-js
pontos para osreact-scripts start
quais hospeda o site em um modo de desenvolvimento.Em conclusão, o
npm start
comando é configurável. Se você quiser saber o que faz, verifique opackage.json
arquivo. (e você pode fazer um pequeno diagrama quando as coisas ficarem complicadas).fonte
"start" é o nome de um script, no npm você executa scripts como este
npm run scriptName
,npm start
também é uma abreviação denpm run start
Quanto a "react-scripts", este é um script relacionado especificamente ao create-react-app
fonte