Por favor adapte-se ao estilo de identação ditado no arquivo .editorconfig. Nós recomendamos usar o editor de textos com suporte a EditorConfig para evitar problemas com identação e espaços em branco. A maioria dos arquivos JavaScript usam 4 espaços para identação, mas existem algumas exceções.
Quando estiver nomeando variáveis, use camelCase ao invés de underscore_case. Arquivos JavaScript diferentes algumas vezes usam estilos de código diferentes. Por favor tente se adequar aos padrões de estilo de cada arquivo.
Utilize o JSHint code linter para verificar bugs e erros de estilo no seu código. JSHint irá rodar quando você executar os testes JavaScript. Nós também recomendamos instalar o JSHint no seu editor de textos.
O admin do Django usa o framework jQuery para aumentar as capacidades da interface de administração. Além disso, existe uma ênfase na performance do JavaScript do admin e em minimizar o tamanho de arquivos de media do admin. Servir versões comprimidas ou “minificadas” dos arquivos JavaScript é considerado uma boa prática nesse quesito.
Por isso, patches para arquivos JavaScript devem incluir tanto código original para futuro desenvolvimento (e.g. foo.js), quanto uma versão comprimida para uso em produção (e.g. foo.min.js). Quaisquer links para o arquivo no projeto devem apontar para a versão comprimida.
Para simplificar o processo de fornecimento de código JavaScript otimizado, O Django inclui um script Python extremamente útil que deve ser utilizado na criação da versão “minificada”. Para executá-lo:
Por trás das cortinas, compress.py é um front-end para o Compilador Closure `_ do Google que é escrito em Java. A biblioteca do Compilador Closure não é distribuída com o Django, mas você pode instalá-la usando pip como feito acima. A biblioteca do Compilador Closure requer `Java 7 ou versões maiores.
Por favor não se esqueça de rodar o compress.py e incluir o diff dos scripts minificados quando estiver enviando os seus patches para o JavaScript do Django.
Os testes para o JavaScript do Django podem ser rodados em um browser ou diretamente da linha de comando. Os testes estão localizados no diretório js_tests.