Atualizando o Vue.js para a versão 3
A rapidez com que aprimoramentos ou novas tecnologias surgem para o desenvolvimento de software acaba por tornar produtos digitais já em uso, de certa forma, obsoletos.
O Vue.js é um ótimo framework open source para o frontend que traz muitos benefícios para o desenvolvimento de um software escalável, com uma ótima reutilização de código e componentização.
Como em todo projeto open source, novas funcionalidades e atualizações são desenvolvidas todos os meses, e a última grande versão, Vue.js 3, foi oficialmente liberada no dia 18 de setembro de 2020.
Mas porque é necessário atualizar o Vue.js 2?
Nesta nova versão, foram implementadas novas ferramentas muito interessantes, como a Composition API, o Fragment, Teleport e outros.
Além de ter acesso às novas funcionalidades da nova versão, o suporte à versão 2 será encerrado dia 31 de dezembro de 2023.
Isso significa que ainda será possível instalar a versão antiga através dos gerenciadores de pacote como yarn, porém, não serão mais lançadas novas funcionalidades ou correções de bugs.
Neste artigo, vamos entender como é possível atualizar um projeto desenvolvido em Vue.js 2 para a versão 3.
Iniciando a migração
Criei um projeto simples em Vue.js 2 para podermos utilizar como base para a atualização, você pode encontrar o projeto neste link.
Esse projeto é um gerenciador de tarefas simples que armazena as tarefas no local storage e permite que o usuário defina um título, uma descrição e o status da tarefa.
Para rodar o projeto, utilize o comando yarn dev.
A migração de um projeto Vue.js para a versão 3 pode ser bem desafiadora dependendo dos pacotes em uso no projeto, tenha em mente que se algum pacote entrar em conflito com as novas versões instaladas, será necessário pesquisar e analisar como corrigir o conflito.
Após clonar o projeto, vamos precisar seguir um processo para remover alguns pacotes e adicionar/atualizar outros.
Atualizando dependências
1) Atualizar o vue-cli para a última versão. Para isso, rode o comando:
O resultado deve ser algo semelhante à mensagem abaixo:
2) Para instalar a nova versão do Vue.js, utilize os comandos abaixo:
Após rodar os comandos abaixo, serão instaladas a versão 3 do Vue.js, o compilador e o pacote auxiliar @vue-compat que serve como um gerenciador de compatibilidade entre o código Vue.js 2 e Vue.js 3.
3) Para que seja possível utilizar o routes, atualize utilizando o comando:
4) Como a nova versão utiliza outras versões de pacotes para renderizar css, será necessário atualizá-los, atualize utilizando o comando abaixo:
Estes pacotes são necessários para interpretar css e compilar/renderizar templates.
5) Precisamos também atualizar o webpack e o eslint:
Para atualizar o eslint, rodar o comando:
Para atualizar o webpack, rodar o comando:
A partir desse ponto, todos os pacotes necessários para a nova versão foram instalados, basta agora configurar e modificar alguns arquivos para que seja possível utilizar as funcionalidades da nova versão nos componentes.
Configurando o projeto
Após atualizar os pacotes, é necessário criar um novo arquivo chamado webpack.config.js que será responsável por informar ao compilador do projeto que deve ser utilizado o @vue-compat ao invés do Vue como interpretador dos arquivos do projeto, dessa forma, será possível manter a compatibilidade entre o código antigo e o novo.
Crie um arquivo na raiz do projeto com o nome de webpack.config.js e o conteúdo:
Este arquivo será responsável por definir o modo de compatibilidade com a versão 2~ do Vue.js.
Agora é preciso incluir dentro do webpack.base.conf.js, o seguinte trecho:
O arquivo completo atualizado você pode verificar neste link.
Alguns parâmetros em uso pelo arquivo webpack.dev.conf.js não são mais compatíveis com a nova versão instalada do webpack, por isso, precisaremos removê-los:
O arquivo final deverá ficar como neste link.
Agora precisamos alterar o arquivo main.js para ficar compatível com a versão 3 do framework.
Altere o conteúdo do arquivo main.js para o seguinte:
O próximo passo é alterar o arquivo index.js para que seja compatível com a versão 3 do Vue.js.
Altere o arquivo routes/index.js para o seguinte conteúdo:
Conclusão
Agora já é possível rodar o projeto utilizando o comando yarn dev.
No branch vuejs3 do projeto que você encontra neste link foi criado o componente TasksCounter.vue que você pode utilizar para testar as novas funcionalidades do Vue.js 3.
Algumas funcionalidades foram descontinuadas na nova versão e são as chamadas breaking changes. Você pode verificar elas e realizar os devidos ajustes no projeto.
Essa tarefa é desafiadora por conta de possíveis conflitos com outros pacotes do projeto, não existe em enviar a sua dificuldade e tentarei auxiliar quando possível.
Sugestões e comentários construtivos são bem vindos.
Obrigado e até a próxima!
A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.