Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Carregar somente JS necessário #184

Open
jonasmtomazelli opened this issue Nov 28, 2018 · 5 comments
Open

Carregar somente JS necessário #184

jonasmtomazelli opened this issue Nov 28, 2018 · 5 comments

Comments

@jonasmtomazelli
Copy link

Tudo bem pessoal, tenho um sistema e ele está se tornando bem grande e começo a enfrentar problemas com o tamanho dos arquivos de JS. Tem alguma forma de carregar dinamicamente somente os arquivos que preciso. Por exemplo, quando estou em cadastro de clientes, carregar somente o JS referente a esse cadastro. Hoje programamos em arquivos separados, mas compilamos tudo em um só arquivo.

O problema disso é que além do arquivo ficar muito grande, também a chance de dar erros é maior, já que todo JS é carregado em uma pancada só.

@eliasaparecido
Copy link

Eu não sei se é certo, mas quando é um javascript muito específico de uma página, isso no laravel, eu crio um @section dentro da view, proveniente do template principal do meu projeto, assim esse javascript só será carregado quando a página for carregada.

@jonasmtomazelli
Copy link
Author

Bom dia. Obrigado pela resposta. Com o @section eu escreveria o javascript diretamente na views, correto?

O problema é que um Java script meu específico de uma página pode passar se 2 mil linhas facilmente.

@edilsoncichon
Copy link

Eai @jonasmtomazelli tudo certo? Imagino que você já tenha resolvido isso, mas pode ser que isso ajude outras pessoas.
Recomendo que você mantenha os arquivos JS em um diretório onde você possa gerenciá-los (ex: resources/js/...), do contrário, você pode ter dificuldade para manter seu projeto. E para resolver a sua questão, você pode usar o recurso "mix.copy" do laravel-mix. Dessa forma, você pode ter vários arquivos, um para cada página, e no momento da compilação o mix vai copiá-los para a pasta public. E por último você faz a referência na página para o arquivo na public.
Espero que ajude, um abraço!

@fabiosperotto
Copy link

Eu não sei se é certo, mas quando é um javascript muito específico de uma página, isso no laravel, eu crio um @section dentro da view, proveniente do template principal do meu projeto, assim esse javascript só será carregado quando a página for carregada.

Eu faço que nem @eliasaparecido disse acima. No layout informo alguns campos (yeld) e depois no HTML que utilizado injeto JS/CSS específico pra página através de sections. Ao invés de ter um JS compilado gigantesco, crio vários menores e faço exatamente isso aí: distribuir e chamar somente quando são necessários.

Fonte: https://laravel.com/docs/5.8/blade#template-inheritance

@jonasmtomazelli
Copy link
Author

Bom dia, eu ainda não resolvi meu problema na verdade. Vou testar esses soluções que vocês me enviaram. Muito obrigado.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants