Skip to content

O frontend pré-Vite continua no repositório, e o axios que ele instala vai no bundle de toda página #249

Closed

Description

@matbrgz

O que encontrei

O frontend pré-Vite continua inteiro no repositório, em paralelo com o que roda de verdade. São 81 arquivos que nenhuma parte da aplicação alcança:

  • webpack.mix.js — e ele nem funcionaria: a primeira linha é require('laravel-mix'), e laravel-mix não está no package.json. Os scripts do projeto são vite / vite build.
  • resources/assets/sass/** — 45 arquivos do tema light-bootstrap-dashboard. O Vite compila resources/css/app.css com Tailwind; este SCSS não entra em build nenhum.
  • public/js/** (8) e public/css/** (6) — saída antiga do Mix, versionada. Inclui jquery-1.10.2.js, bootstrap.min.js, chartist.min.js. Nenhuma view referencia: grep -rnE "mix\(|asset\('(js|css)/" resources/views/ não devolve nada.
  • resources/assets/js/ — app.js, bootstrap.js e o Example.vue do scaffold original do Laravel.

Não é só peso morto: está no bundle que o navegador baixa

resources/js/app.js — o arquivo vivo — abre com import './bootstrap'. E resources/js/bootstrap.js existe só para isto:

import axios from 'axios';
window.axios = axios;
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
window.axios.defaults.baseURL = '/api';

Ninguém consome window.axios. Fora do próprio arquivo, a única ocorrência em resources/ é o resources/assets/js/bootstrap.js legado, que também é para remover. As telas novas falam com o servidor pelo request() de features/api.js.

Resultado: o axios inteiro é empacotado em app-*.js e baixado por toda página da aplicação, para configurar um global que nada lê. A remoção de import './bootstrap' tira o axios do bundle.

O que muda

Medição feita com o build real:

antes depois
app.js 143.405 bytes 92,70 kB (gzip 34,22 kB)

81 arquivos apagados, −20.455 linhas, e o axios sai das devDependencies.

O que precisa ser verificado antes de mergear

O tailwind.config.js varre ./resources/**/*.js e ./resources/**/*.vue. Três dos arquivos removidos caem nesse glob (resources/assets/js/app.js, .../bootstrap.js, .../components/Example.vue). É preciso comparar o CSS gerado antes e depois para confirmar que nenhuma classe do Tailwind era gerada só porque esses arquivos a mencionavam — caso contrário a remoção tira estilo de uma página viva sem nenhum teste reclamar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions