1.22.0 • Published 7 years ago

ember-addons v1.22.0

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

Ember-Addons

O ember-cli tem uma funcionalidade chamada "in-repo addon" que basicamente permite o desenvolvimento de um addon dentro do diretório de um projeto Ember. A ideia da funcionalidade é permitir que o desenvolvedor separe uma parte da aplicação que ele acredita que possa futuramente se tornar um componente isolado, como estamos fazendo com vários dos nossos componentes. A solução é simples, consiste em colocar seus addons dentro da pasta lib do projeto raiz e declarar a dependência no array paths dentro do nó ember-addons no package.json do projeto

O segredo (pra gente) é que ao invés de colocarmos os addons diretamente na pasta lib, criaremos symbolic links apontando para os addons dentro de "/frontresponsivo-cvc/frontresponsivo-addons":

Funciona recursivamente também, o que significa que importar um addon também importa as dependências dele. Para habilitar o live reload basta que o addon declare em seu index.js o método isDevelopingAddon e o mesmo retorne true quando invocado:

(...) isDevelopingAddon: function () { return true; }

O único problema é que essa solução necessita de um passo a mais de instalação, para criar os links automaticamente. Criei uma POC (que atualmente só funciona em sistemas *nix) que faz isso recursivamente. Estou enviando ela em anexo, caso tenham curiosidade de entender como funciona.


Processo de criação de um novo app a partir de um cvc-product-application (addon de projeto que funciona como uma aplicação).

Para rodar apenas a criação dos links simbólicos rode ember-addons normalmente, agora se deseja criar um app a partir de um cvc-product-application, rode o comando: ember-addons new-app. Dessa forma o ember-addons vai passar pelos processos de blueprint de cada addon, e instalando as dependencias internas caso necessário.

Como crio um cvc-product-application ?

Você deve colocar todas as depedencies e devDependencies que seu projeto depende no package.json e no bower.json, incluir uma propriedade no package.json chamada "application-addon" : true Dessa forma o ember-addons irá saber que se trata de um application-addon e deve copiar as dependências para o projeto pai.