react-scripts: not found

Acredito que é algum erro no meu package.json

{
“name”: “mydevwebsite”,
“main”: “/src/components/Header/index.js”,
“version”: “0.1.0”,
“private”: true,
“dependencies”: {
@material-ui/core”: “^4.9.4”,
@material-ui/icons”: “^4.9.1”,
@testing-library/jest-dom”: “^4.2.4”,
@testing-library/react”: “^9.3.2”,
@testing-library/user-event”: “^7.1.2”,
“axios”: “^0.19.2”,
“react”: “^16.12.0”,
“react-dom”: “^16.12.0”,
“react-router-dom”: “^5.1.2”,
“react-scripts”: “3.4.0”
},
“scripts”: {
“start”: “npm run-script run”,
“build”: “react-scripts build”,
“test”: “react-scripts test”,
“eject”: “react-scripts eject”,
“run”: “react-scripts start”
},
“eslintConfig”: {
“extends”: “react-app”
},
“browserslist”: {
“production”: [
“>0.2%”,
“not dead”,
“not op_mini all”
],
“development”: [
“last 1 chrome version”,
“last 1 firefox version”,
“last 1 safari version”
]
}
}

Olá, @GustavoRoger! Tudo bem?
Acredito que esse tutorial lhe ajude a executar o react:


Outra coisa, pode ser que ele não tenha instalado o react.
Se você estiver fazendo o deploy por outro método que não seja Git Remote, será necessário instalar ele manualmente usando um desses métodos:

Espero que lhe ajude :smiley:

1 curtida

Boa noite Thiago, obrigado por responder a minha pergunta.

O problema parte de que como você havia falado, não instalou o react e consequentemente dava erro nas dependências. Pois justamente não usei o Git Remote, estou usando o Deploy via integração GitHub.

Então parti para sua orientação e me ajudou muito a me direcionar para o real problema.

Através dessa postagem:

Primeiramente tentei usar a opção SSH, pois me pareceu a alternativa mais sensata, pois era “apenas” rodar o npm install, mas tive o problema de Connection closed by remote host, então segui as dicas de outro post seu:

Consegui passar pelo problema Connection closed by remote host, mas então ao executar o npm install, funcionava parcialmente até chegar um ponto que ocorria “not enough memory”. Tentei repetidas vezes, mas sem sucesso. (Talvez pela grande quantidade de dependências)

Então parti para alternativa de usar o FTP, conforme o post era apenas copiar o “node_modules” para a raiz do projeto, mas ao executar isso ele também apenas faz parcial até certo ponto, então a conexão caia e não conseguia enviar tudo. Tentei repetidas vezes, mas sem sucesso. (Talvez pela grande quantidade de dependências)

Então parti para a alternativa de Versionar a “node_modules”, removi o node_modules do .gitignore e em seguida realizei o commit, até ai sucesso.
Realizei o deploy na aplicação e reiniciei, mas mesmo assim não funcionou.

Verifiquei que o commit foi completo, constatei que no meu node_module tem 1048 pastas e quase 55mil arquivos.

E no node_module do servido havia apenas 406 pastas após essa ultima tentativa, tendei dar deploy novamente, mas mesmo assim não pegou todos os arquivos do GitHub. (Talvez pela grande quantidade de dependências)

Enfim, no final tentei novamente pelo FTP, acabei conseguindo realizar a transferência dos dos aquivos restante. Mas ao reiniciar a aplicação, não funcionou.

Até aqui aparentemente o problema das dependências estão OK.

Mas após conseguir disponibilizar o node_modules no servidor o erro que identifiquei nos Logs, foi o seguinte:

Error: Cannot find module '/usr/src/app/node_modules/react-scripts/bin/react-scripts.js’

E realmente esse react-scripts.js não existe em minha aplicação, mas nunca tive problema em rodar localmente.

Não sei se tens alguma outra orientação/dica pra me passar?

Sim, tenho duas possibilidades que você pode seguir!
Primeiro, você já considerou o deploy via Git Remote?
Esse é o deploy que melhor recomendamos. Pois ele já instala as dependências automaticamente!
Não é necessário (nem recomendado) versionar a node_modules nesse método, ou enviá-la de outra maneira!
E usando ele, o processo de instalação é feito em um container temporário com mais recursos. Diminuindo consideravelmente a possibilidade de ocorrer o erro de falta de memória. Acho que até hoje não vimos nenhuma combinação de dependências que tenha sido demais para esse container temporário :smiley:

A outra possibilidade é tentar novamente esse procedimento:

Mas com uma diferença:
Antes de rodar o NPM install, você pode redimensionar temporariamente o seu container para um melhor, com mais memória. Irá ajudar com o erro que acontece no Container usado anteriormente.
Depois do procedimento completar, você poderá restaurar de volta para o Container que você desejar.
Será cobrado referente a apenas o tempo que o container com mais recursos estiver em uso. Então se você contratar o melhor que temos de R$64,00/mês, mas usá-lo por apenas uma hora, será cobrado pouco menos de 9 centavos

1 curtida

Olá Thiago.

Conforme sua recomendação, eu redimensionei a aplicação para a maior possível, então executei o npm install e dessa vez foi até o final e sem erros, mas ao reiniciar e executar a aplicação continuou sem funcionar o serviço.

Então parti para usar o deploy via Git Remote conforme sua recomendação, aparentemente bem prático e rápido, porém tive problemas ao executar git push umbler master, executou parcialmente, conforme print:

Mas mesmo dando erro, tentei novamente e não apresentou mais nenhum feedback, apenas que o o repositório estava atualizado conforme origem.

Então o painel da umbler executou o deploy com erro, porém não gerou nada de log de erro para que eu pudesse analisar e ter alguma ideia do motivo da falha.

Ah, certo!
Parece que o módulo que ele tentou instalar deu esse erro pois ele é compatível apenas com essas versões do Node que ele listou:
image
Talvez seja interessante trocar a versão do Node do seu Container para a versão 12, por exemplo. Já que ele parece aceitar versões superiores a 11.10.1.
Depois de trocar a versão, tente efetuar um novo deploy!

1 curtida

Olá Thiago!

Exatamente como você havia falado, foi apenas ajustar a versão do Node do container para a versão 12 e após realizar o deploy a aplicação funcionou!

Muito obrigado por me ajudar, é minha primeira experiência com container e você me ajudou muito.

Obrigado!

1 curtida

De nada :smile:
Fico feliz que consegui ajudar!
Qualquer coisa estamos aí :wink: