Organizando um projeto Meteor
Publicação: | Tags: Meteor
Uma dúvida muito recorrente para os iniciantes da plataforma Meteor, é sobre como organizar os diretórios do projeto. Acredito que muitos que começaram, se depararam com este problema. Afinal a documentação oficial não explica muito claro esses detalhes. Mas graças a documentação não-oficial aprendi as convenções desse framework, que são boas práticas para desenvolvimento de projeto de larga-escala. Hoje explicarei o significado das conveções de diretórios do Meteor.
Convenções de diretórios do Meteor
- lib: Inclua common-codes ou bibliotecas que serão carregados tanto no cliente como no servidor. Um bom exemplo são libs de regras de negócio.
- lib/environment.js: Javascript de configurações gerais de ambiente.
- lib/methods.js: Definições de rotinas para o
Meteor.method
- lib/external: Bibliotecas externas de outros autores, exemplo: plugins para jQuery.
- models: Definições de modelos que representarão collections do banco MongoDB.
- client/lib: Códigos específicos do cliente pelo qual são carregados primeiro entre os demais códigos de sua pasta client.
- client/lib/environment.js: Configurações de pacotes para o client.
- client/lib/helpers: Pasta dedicada para funções helpers e events de um determinado template.
- client/application.js: Código de startup no cliente, geralmente utiliza funções de subscriptions e rotinas internas da função
Meteor.startup
. - client/index.html: Código HTML principal.
- client/index.js: Javascript principal que carrega primeiro (também pode ser chamado de main.js).
- client/views/nome_do_template.html: View template específicos (mude nome_do_template para o nome real do template).
- client/views/nome_do_template.js: Código Javascript para um específico template (mude nome_do_template para o nome real do template).
- client/views/sub_template: Você também pode criar sub-templates dentro dessa pasta, geralmente eles são conhecidos como partials, e são trechos de templates utilizados para um template principal (mude sub_template para o nome real do template principal).
- client/stylesheets: Arquivos CSS, Less ou Stylus.
- server/publications.js: Definições de rotinas para o
Meteor.publish
. - server/lib/environment.js: Configurações de pacotes para o servidor.
- public: Pasta de arquivos estáticos: imagens, fontes e outros arquivos que serão servidos estaticamente.
- tests: Diretório para criação de testes unitários (por default eles não serão carregados nem no cliente e nem no servidor, somente utilizando um framework de testes).
Até a próxima galera! Continuem acompanhando o blog, novos posts sobre Meteor estão por vir.