3
respostas

Erro Deploy app criado no Vue-Cli on heroku

Não estou conseguindo efetuar o deploy correto do meu app criado em Vue-Cli.

O banco funciona corretamente porém o meu app não é encontrado pelo heroku. O corre o seguinte erro:


2019-04-12T20:41:23.385676+00:00 heroku[router]: at=info method=GET path="/" host=bestlocation.herokuapp.com request_id=df05543c-ac2b-43c1-8c7a-0391c5a18042 fwd="187.101.136.30" dyno=web.1 connect=0ms service=3ms status=404 bytes=586 protocol=https
2019-04-12T20:41:24.241649+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=bestlocation.herokuapp.com request_id=f4a62f05-870b-43f5-8e08-58472b3a6efd fwd="187.101.136.30" dyno=web.1 connect=0ms service=3ms status=404 bytes=597 protocol=https

Acredito que ele não está conseguindo encontrar a inicialização do app. Estou utilizando exppress para midware de servidor.

Em meu express estou utilizando a seguinte forma para encontrar a inicialização

    app.use(express.static('bestlocation'));

Porém já tentei usar os seguinte comando no server.js

app.get('*', function(req, res){
    res.sendFile('index.html', {root : path.resolve(__dirname + "../../../")})
})
app.use('/',serveStatic(path.join(__dirname + "/dist")));

app.get('*', function(req, res){
    res.sendFile(__dirname + "/dist/index.html")
})
app.use(serveStatic(path.join(__dirname, 'dist')))

app.get('*', function (req, res) {
    const index = path.join(__dirname, '../../bestlocation', 'index.html');
    res.sendFile(index);
  });

app.get('*', function (req, res) {
    const index = path.join(__dirname, 'build', 'index.html');
    res.sendFile(index);
  });

Porém nenhum teve sucesso. maioria com erro 404 e outros 403 de permissão.

Em alguns sites pedem para procurar na pasta /dist porém como no curso de vue foi ensinado a usar o web-pack simples o index.html não é colocado nesse diretorio.

Tentei colocar manualmente porém não obtive suceeso.

Poderiam me ajudar por favor?

3 respostas

Fala aí Luis, tudo bem? Sobre ele não estar sendo encontrado e estar dando erro 404 no Heroku é complicado, esse problema pode ter N soluções e motivos para estar ocorrendo.

Precisaríamos ter o log de deploy para verificar se não deu nenhum erro, precisaríamos verificar o seus comandos de deploy ou seja o Procfile, etc...

Por conta de vários fatores, eu gostaria de fazer uma sugestão: Porque você não deploya no Netlify? É bem mais simples que o Heroku, apenas com a pasta build ou dist do seu projeto ele já lida com tudo.

O deploy pode ser feito de N maneiras também, uma delas é após gerar a pasta final do seu projeto, arraste ela para o Netlify e sucesso.

Ou você pode configurar uma integração com o Github, após receber novos commits ele faz o deploy, para isso, pode criar um netlify.toml na raiz do projeto:

[build]
    base    = "./"
    command = "yarn build"
    publish = "./build/"

Ele irá rodar o comando yarn build e após a criação da pasta build irá utilizá-la como deploy.

Espero ter ajudado.

Consegui a solução e vou deixar aqui como documentação.

No package.json criei o start da seguinte forma

"start": "node server.js",

E no servidor foi adicionado o seguinte comando

app.use(serveStatic(__dirname));

o meu erro foi colocar o nome do meu app como paramento no serverStatic porém o heroku não conseguia encontrar a pasta. acredito como ela inicia o servidor em minha raiz foi possível identificar o build.js

Vou conferir a sugestão do Netlify Obrigado!