Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

Ainda sobre módulos...

Uma nova dúvida sobre Component VS Module:

Sei que na release final do Angular 2 ficou obrigatório o uso do Module, para "externar" o uso de um component. Mas uma coisa não me ficou clara.

Qual o motivo que a equipe do Angular montou esse esquema de módulos, para casos que só vou utilizar internamente?

É uma boa prática eu criar, no mesmo arquivo, o Module e o Component, visto que 99% dos casos esses Components são as nossas telas internas?

13 respostas

Se você não quer deixar essa ou aquela parte do seu projeto (Component, Pipe, Service) reaproveitável em outros projetos, adicione todos os componentes, pipes e services como fazendo parte do módulo principal da aplicação, aquele que é o primeiro a ser carregado.

solução!

O NgModule além de ser um aglomerado de coisas (pode ter componentes, pipes, services, etc) ele ajuda na importação. Basta você importar o módulo que tudo já vem à reboque. Se você não usar o NgModule, terá que importar cada cada individualmente e sua aplicação ficará chata de manter.

O único módulo que não é opcional é o principal da aplicação, pois angular espera carregar um NgModule em sua inicialização.

Aliás, veja que ListagemComponent e CadastroComponent não pertecem a um módulo específico, pertencem à AppComponent, o módulo principal da aplicação.

É a mesma ideia de módulos de Angular 1.X, só que implementado de maneira diferente.

Orlando! Fiz isso pensando em você:

https://cursos.alura.com.br/course/angular2-parte2/task/21946

Acho que isso vai ajudá-lo. Tem como dar uma testada para mim? É um preview para que o aluno se sinta mais seguro antes da versão final.

No final tem um link do projeto dentro da estrutura do Angular CLI. Porque é fácil criar um projeto do início com o Angular CLI, mas atualizá-lo para o Angular CLI é meio chatinho. :)

Vou testar!

Precisa ser instalado como ROOT no mac os? Deu esse erro pra mim:

npm ERR! Darwin 16.1.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "angular-cli@1.0.0-beta.19-3"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! path /usr/local/lib/node_modules/angular-cli/node_modules/asn1.js
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/angular-cli/node_modules/asn1.js'
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules/angular-cli/node_modules/asn1.js'
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules/angular-cli/node_modules/asn1.js' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/orlando/npm-debug.log

No texto eu deixei claro que é necessário ter permissão de administrador. Até coloquei em negrito puxa! :)

Em teoria, não precisa. É que seu MAC deve estar com problemas de permissão. Dá uma pesquisada depois sobre nunca usar sudo no MAC ou coisa parecida.

Mas para funcionar ai, você precisará sim. No meu MAC não preciso, não é boa prática usar sudo.

Realmente estranho, mas fiz com SUDO e instalou. Vou testar os exemplos.

Ah, e demora mesmo o processo de download e build. Meu Mac tem 16GB e SSD, ainda assim não é lá a coisa mais instantânea no mundo. Mas como é beta, vamos dar um desconto. Se puder, recarrega lá que dei uma atualizada no texto.

Agora vou aguardar seu retorno. Vou tocando outras coisas aqui.

Flavio, testei todos os comandos e funcionaram perfeitamente! Fiquei fascinado pelo jeito que ele "compila" a versão final do aplicativo, em apenas alguns arquivos, fica muito mais fácil o deploy de uma versão...

Só me pergunto se na hora que der algum bug, se o map dos javascript's funcionará certinho... mas é só testando pra ver agora.

Uma observação apenas é que na versão final, fica cheio de "warnings" no chrome, aparentemente algo com o webpack.

Show. Pois é, como é só warnning vou deixar quieto. Pode ser que na versão final suma.

Ah, inclusive o Angular CLI usa o Angular 2.1!

Espero ter ajudado!

Sucesso e bom estudo!

Reabrindo esse tópico só pra mais uma pergunta...

Essa "compilação" que a gente fez com o angular-cli, tem jeito de fazer ela manualmente, sem o angular-cli, visto que ele está em beta?

Se você saca de um build system e se propõe a inventar deu proprio build sim. É igual a qualquer build de front.