Front End

24 ago, 2017

Angular Cli Scaffold

Publicidade

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.