ember-addons
v1.22.0
Published
Ember-Addons
Downloads
1
Readme
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.