Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Projeto Final (router.js:26 Uncaught TypeError: inicarRota is not a function)

Baixei o projeto final e executei o npm run build porém no console obtenho o seguinte erro no navegador (Chrome Versão 84):

router.js:26 Uncaught TypeError: inicarRota is not a function
    at navegacao (router.js:26)
    at eval (main.js:5)
    at Module../src/main.js (main.js:227)
    at __webpack_require__ (main.js:20)
    at main.js:84
    at main.js:87
navegacao    @    router.js:26
eval    @    main.js:5
./src/main.js    @    main.js:227
__webpack_require__    @    main.js:20
(anonymous)    @    main.js:84
(anonymous)    @    main.js:87

Não sei bem o que pode está errado uma vez que no seu ambiente nos vídeos parece ter funcionado. E só reforçando este é o código disponibilizado no curso para download na Aula 5 - Atividade - 09.

https://github.com/alura-cursos/spa_js/archive/projeto_final.zip

2 respostas

Oi, Diogo, tudo bem?

Eu baixei o projeto final, juntamente com o servidor. Ambos, que deletei os arquvios package-lock.json e rodei o npm install para rodar as dependências e não obtive esse erro, segue o print de ambos os terminais: https://imgur.com/a/BNTyzJr

Você subiu também a pasta que contém o servidor?

solução!

No final o problema todo é só mesmo uma questão de configuração mas acho válido eu deixar esta solução aqui para o caso de alguém ter algum problema parecido afinal faz parte tentar sair um pouco fora da 'caixa'.

Só pra poder encerrar este tópico com uma solução vou descrever meu ambiente.

(Observação: usando o servidor do próprio projeto ele rodou mas no meu caso eu utilizo a Homestead e foi aí onde tive problemas.).

No caso eu uso o Vagrant -> https://www.vagrantup.com/

Com a Homestead uma máquina virtual baseada em Ubuntu disponibilizada pela Laravel -> https://laravel.com/docs/6.x/homestead

Arquivo de configuração Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox
ssl: true

authorize: C:\Users\Diogo\.ssh\id_rsa.pub

keys:
    - C:\Users\Diogo\.ssh\id_rsa

folders:
    - map: C:\Users\Diogo\Code\laravel
      to: /home/vagrant/laravel

    - map: C:\Users\Diogo\Code\javascript
      to: /home/vagrant/javascript

sites:
    - map: homestead.test
      to: /home/vagrant/laravel/public

    - map: javascript.test
      to: /home/vagrant/javascript

databases:
    - homestead

features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

Dentro da pasta C:\Users\Diogo\Code\javascript tinha baixado os arquivos do https://github.com/alura-cursos/spa_js/archive/projeto_final.zip e descompactei numa pasta projeto_final .

Como eu uso já a Homestead não subia o servidor do projeto_final que o webpack disponibiliza mas usava o servidor da própria Homestead logo eu só fazia o npm run build para gerar os arquivos dentro da pasta "dist" no projeto_final.

Quando eu queria ver os resultados eu simplesmente ia no navegador e digitava http://javascript.test/projeto_final/dist até a aula 04 - https://cursos.alura.com.br/course/spa-javascript-puro/task/76234 isso funcionou.

Porém quando eu fiz as alterações a partir desta aula 04 comecei a ter o erro citado no navegador :

 router.js:26 Uncaught TypeError: inicarRota is not a function
    at navegacao (router.js:26)
    at eval (main.js:5)
    at Module../src/main.js (main.js:227)
    at __webpack_require__ (main.js:20)
    at main.js:84
    at main.js:87 

Solução:

Percebi que não podia rodar os arquivos direto na pasta dist http://javascript.test/projeto_final/dist pois o minha raiz que criei na Homestead era em http://javascript.test logo o que fiz foi jogar os arquivos que estavam na pasta dist em

*C:\Users\Diogo\Code\javascript\projeto_final\dist *

para a raíz

* C:\Users\Diogo\Code\javascript\ *.

Então quando faço a chamada por http://javascript.test o erro já não ocorria.