Skip to main content

Se for necessário incluir novos arquivos JS (uma nova lib) ou incluir classes em arquivos já existentes (provavelmente accelero.js), seguir o seguinte procedimento:

LOCAL ARQUIVO - BUNDLE

Todos os arquivos que estiverem dentro do diretório public/js/modules serão eventualmente compilados num bundle (bundle.js). Isso acontece pra reduzir o tamanho de requests e permite minificação, se necessário.

A primeira etapa é garantir que o arquivo que você está criando/alterando esteja nesse diretório.

EXCETO...

Se você não quiser que ele faça parte do bundle. Isso pode ser desejável (e recomendável) caso haja uma lib usada de forma esporádica (apenas na tela XYZ, por exemplo). Nesse caso, não faz sentido compilar esse JS no bundle principal, e é melhor carregar o arquivo diretamente na view (<script src="seuArquivoJS.js"></script>).

MODULES.JS - IMPORT

O arquivo public/js/modules.js funciona como uma espécie de mega-importador/mapeador de classes.

Todos os arquivos criados no diretório modules devem exportar as classes no formato de módulos (export class MyClass ou export default class MyClass), e depois isso deve ser mapeado em dois lugares no modules.js.

Logo no início do arquivo, há uma lista de todas as classes que devem ser "tornadas públicas":

import {
Table,
SNFWREST,
...
Veiculo,
SuaNovaClasse,
}

Garante que sua(s) classe(s) esteja(m) listada(s) ali.

Não precisa se preocupar com o MD5 na URL.

MODULES.JS - EXPORTAR CLASSE PARA WINDOW

Mais abaixo no modules.js, você provavelmente deve exportar a classe para o objeto window para que ela possa ser usada ao longo do ciclo de vida do projeto.

window.Table Table;
window.SNFWREST = SNFWREST;
window.ChartJSGraph = ChartJSGraph;
...
window.SuaNovaClasse = SuaNovaClasse;

Garante que sua(s) classe(s) esteja(m) listada(s) ali.

GERAÇÃO DE BUNDLE

Ao alterar/incluir qualquer arquivo JS que "deva fazer parte do bundle", você deve fazer a compilação do bundle.

Pra isso, use a função específico do plugin devtools. Ao executar a função de geração de bundle, garanta que o asyncprocessor esteja rodando, e confira se o bundle.js foi alterado na árvore do git.