Dev (Back & Front)ARTIGO

Angular Cli Scaffold

Hoje, iremos navegar pelos diretórios e conhecer os arquivos que são criados para um projeto Angular com o Angular Cli.

Hoje, iremos navegar pelos diretórios e conhecer os arquivos que são criados para um projeto Angular com o Angular Cli.

Nosso primeiro passo será a criação de um novo projeto. Para isso, com o seu terminal aberto, escolha um diretório para o seu projeto e execute o seguinte comando ng new structure no seu terminalEsse comando irá criar um Scaffold com o que precisamos para iniciar um projeto com o Angular. Assim que o comando finalizar a criação do nosso projeto, execute o comando npm install. A execução dele irá baixar os pacotes necessários para os nossos próximos passos.

Agora, para que possamos navegar e entender os arquivos criados no passo anterior, precisaremos de uma IDE (Editor de Texto). Para esse artigo, nós iremos utilizar o Visual Studio Code. Ele é uma IDE que está sendo muito adotada pelos desenvolvedores por ser rápido e grátis. Ele pode ser encontrado para download no link.

Com a execução dos passos anteriores, nós temos a seguinte estrutura:

Estrutura de um projeto Angular 4

O primeiro diretório que nós iremos conhecer será o e2e. Dentro dele, nós temos três arquivos: app.e2e-spec.ts, app.po.ts e tsconfig.e2e.json. Nós iremos utilizar esses arquivos para criarmos os nossos testes unitários. Para que possamos testá-los, abra o seu terminal no seu Visual Studio Code e execute o comando ng serve dentro dele. Em seguida, vá até o sinal de no canto direito do seu terminal e abra uma nova aba.

Feito isso, nós conseguimos deixar uma aba executando o nosso projeto e podemos executar outros comandos como o de teste dentro dessa nova aba, sem a necessidade de abrir mais de um CMD, no caso do Windows, ou Terminal, no caso do Linux ou Mac.

Para que possamos testar os testes unitários que vêm junto com a criação da nossa estrutura, execute o comando ng e2e no seu terminal. Ele irá executar os testes que estão dentro do nosso diretório e2e, dependendo dos nossos testes. Ele pode abrir algumas vezes o nosso navegador para executá-los. Por fim, ele irá passar o resultado na nossa console. Podemos ver esse resultado na imagem a baixo:

Resultado teste unitário Angular 2

Note que para esses testes, o Angular está utilizando o Selenium, uma ferramente de testes que é muito utilizada nos ambientes de QA. Dando continuidade na nossa navegação, vamos aos outros diretórios:

  • node_modules: Diretório responsável por armazenar as nossas bibliotecas, quando nós adicionamos algo no nosso arquivo package.json. Ele irá gerenciar os pacotes e as suas versões dentro desse diretório.
  • src: Diretório da nossa aplicação, dentro dele, nós podemos criar os nossos services, components, modules…

src/app:

  • app.component.css: Arquivo responsável pelo estilo do nosso módulo. Com o Angular, nós trabalhamos com os estilos separados para cada componente, assim, conseguimos ter um desacoplamento de estilos. Nesse exemplo, nós criamos um projeto com a extensão .css, mas também temos a possibilidade de trabalhar com arquivos Sass. Para que possamos alterar, basta executar o comando ng set defaults.styleExt scss. Ele irá configurar para que os próximos componentes sejam criados com a extensão do .scss.
  • app.component.html: Arquivo HTML do nosso componente App, segue o mesmo pensando que os arquivos de estilo.
  • app.component.spec.ts: Arquivo de teste do nosso componente.
  • app.component.ts: Pensando em uma arquitetura MVC, esse arquivo teria as mesmas responsabilidades das nossas Controllers.
  • app.module.ts: O Angular é um Framework modular. Ele precisa de um ou mais módulos para que possamos gerenciar os nossos componentes. Esse módulo acaba sendo um default, mas podemos criar outros modules e chamá-los dentro dele.
  • Assets: Esse diretório nos permite trabalhar com arquivos extras a nossa aplicação, como as nossas imagens. Esse diretório é configurado dentro do nosso arquivo angular-cli.json, caso queira alterar ele para um outro, basta ir até o nó abaixo e informar o nome do novo diretório:
"root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico"
      ],
  • Environments: Aqui nós temos dois arquivos .ts: um para o nosso ambiente de produção e um outro para o nosso ambiente de desenvolvimento. Nele, nós adicionamos tarefas como a variável production que vem setada como true em produção e false em desenvolvimento.
  • index.html: Esse seria o nosso arquivo root. É dentro dele que nós rodamos a nossa SPA (Single Page Application).
  • main.ts: Esse é o arquivo principal da nossa Solution. Ele vem definido dentro do nosso arquivo angular-cli.json – esse seria o bootstrap da nossa aplicação.
  • polyfills.ts: Esse arquivo funciona como um tradutor. Exemplo: nós precisamos utilizar algo novo do ES6, mas os nossos navegadores só conseguem entender o ES5. Ele irá interpretar e passar o código corretamente para os nossos navegadores.
  • styles.css: Como todos os nossos componentes tem o seu próprio arquivo .css ou .scss, nós podemos utilizar esse arquivo para criar algo global como variáveis para nossa aplicação.
  • tsconfig.app.json e tsconfig.spec.json: são os nossos arquivos de configuração do TypeScript.
  • typings.d.ts: Nesse arquivo, nós podemos definir tipos para o typescript. Exemplo: a utilização de um require.

Saindo agora do nosso diretório src, nós temos:

  • .gitignore: Arquivo do git que utilizamos para o gerenciamento dos arquivos que serão ignorados no momento do nosso commit.
  • karma.config.js: O Karma é uma biblioteca utilizada para criação de testes unitários desenvolvida pela própria equipe do Angular.
  • package.json: Esse arquivo é o responsável por gerenciar as dependências do nosso projeto, quando nós executamos o comando npm install. Ele verifica os pacotes que estão dentro desse arquivo e baixa para o nosso diretório node_modules, conforme foi vimos no passo anterior.
  • protractor.conf.js: Responsável pela execução dos nossos testes unitários que estão dentro do nosso diretório e2e.
  • README.md: Arquivo Markdown para documentação da nossa aplicação.
  • tsconfig.json: Arquivo de configuração do TypeScript.
  • tslint.json: O tslint fica verificando se estamos escrevendo o nosso código corretamente, ele verifica a sintaxe do nosso projeto em tempo de execução e, em caso de algum erro ou warning, ele lança uma exception na nossa console.

Bom, essa seria a estrutura básica que nós temos quando criamos um projeto Angular com o Angular Cli. Nos próximos artigos, nós iremos abordar alguns comandos que podem nos auxiliar no nosso dia dia.

Microsoft (MVP), atualmente trabalha como Arquiteto de Software para TV Bandeirantes. Nesses últimos anos, focou nas tecnologias criadas pela Microsoft, mas sempre esteve antenado para as novas tecnologias que estão surgindo no mercado. Em um breve resumo, é uma pessoa apaixonada pelo que faz, tem a sua profissão como hobby.

Ver perfil