Este projeto "clichê" (semente, inicial) irá lhe ajudar na construção de aplicações de grande escala, usando o Angular.js com Require.js
--
Projeto Boilerplate, com ferramental de suporte para o desenvolvimento e publicação no gh-pages do GitHub
-
Importante:
-
para definir a comunicação com entre a aplicação frontend, com o backend (parte do servidor), observe e procure seguir a proposta REST URL Design
-
./tools
e./publisher
são baseados no [GitHub] soudev / gulp-steps - 04
-
Execute os comandos a seguir no terminal (console)
$ git clone https://github.com/erkobridee/angularjs-ee-boilerplate.git
$ cd angularjs-ee-boilerplate
$ cd tools
$ npm install
$ cd publisher
$ npm install
./publisher
- a instalação é opcional, utilizado para publicar a versão de distribuição no branchgh-pages
-
Necessário ter instalado o Git
-
Necessário ter instalado o node.js (v4.2.5 ou mais recente) com o npm (Node Package Manager)
- caso esteja em um ambiente corporativo, utilizando o windows atrás de um proxy NTLM, siga estas intruções : Utilizando o Node.js em um Windows XP sem Administrador | Javascript Brasil
-
Necessário ter o Gulp instalado como um pacote global
./
representa o diretório raiz
Atenção: a tarefa lintspaces para verificar a padronização dos arquivos, esta depende do arquivo na raiz do repositório :
.editorconfig
gulp generate
- pergunta qual opção de geração de código você deseja, os respectivos valores para a opção escolhida e finalmente o destino de criação dos arquivos
gulp
- prepara e executa o fluxo de desenvolvimento
-
gulp --release
- gera a versão de distribuição no diretório./dist
-
gulp --preview
- gera a versão de distribuição no diretório./dist
e inicia um servidor web para verificar a aplicação
as configurações do karma estão definidas no arquivo
./tools/karma.options.js
, as configurações para as tasks gulp definidas no arquivo./tools/karma.config.js
e carregadas no arquivo./tools/config.js
-
gulp --karma
- executa o fluxo de desenvolvimento e testes do karma -
gulp karma:specs
- inicia o processo do karma e monitora as alterações dos arquivos js do projeto e de testes onde a cada alteração o karma executa novamente os testes -
gulp karma:coverage
- executa os testes do karma e gera o relatório de cobertura no diretório./tests_out/coverage/html
as configurações globais para o protractor estão definidas no arquivo
./tools/protractor.config.js
, sendo carregado e especificada no arquivo./tools/config.js
-
gulp --e2e
- gera a versão de distribuição, inicia o servidor web e então executa todos os testes e2e -
gulp --protractor={suiteName}
- prepara o servidor web e executa um conjunto de teste (suite) definido no arquivo./tools/config.js
- Configurações globais do ferramental:
./tools/config.js
, as quais são carregadas no arquivo./tools/gulp/helpers/$.js
e injetada em cada arquivo de task do gulp./tools/gulp/tasks
-
Caso você use o Sublime Text, veja isso:
-
[GitHub] the-front / sublime-angularjs-ee-snippets - Sublime Text 2 / 3 Snippets and Completions for Angular.js, Angular UI Router and Require.js (focused to the angularjs-ee-boilerplate code)
-
[GitHub] caiogondim / jasmine-sublime-snippets - Snippets for Jasmine, the BDD framework for testing JavaScript, in Sublime Text
-
-
Como eu conserto o erro EMFILE: Muitos arquivos abertos? | grunt-contrib-watch - GitHub
Isto porque o sistema limita a quantidade máxima de arquivos abertos. Para o OSX o valor padrão é muito baixo (256). Para aumentar temporariamente este limite use o comando
ulimit -n 2048
, este número será o novo limite máximo.Em algumas versões do OSX a solução acima não funciona.
Neste caso tente
launchctl limit maxfiles 2048 2048
e reinicie o terminal.
-
Atrás de um proxy NTLM
- execute duas vezes o comando
npm install
, para instalar todas as dependências
- execute duas vezes o comando
-
Quando você atualizar para a última versão do Firefox e o Selenium parar de funcionar
- mantenha o jar do servidor Selenium sempre atualizado com a última versão
Dentro do diretório
./publisher
gulp --publish
- essa tarefa irá invocar o comandogulp --release
na raiz do projeto, então após gerar a versão de distribuição irá copiar os arquivos do diretório./dist
para o diretório./publisher/.local
, efetua os commit e sincroniza o branchgh-pages
com o GitHub
./
/src >> fontes do projeto
/tools >> ferramentas de desenvolvimento
/publisher >> ferramenta de publicação
gulpfile.js >> arquivo principal do gulp.js
package.json >> arquivo de configuração e dependências do node.js
./tools/gulp
baseado no [GitHub] soudev / gulp-steps - 04
/tools
/gulp
/lib >> processamentos auxiliares
/scripts >> scripts úteis utilizado no npm scripts
/tests
require.config.js >> carrega os arquivos e testes da aplicação para o Karma Runner
config.js >> configurações globais para as tarefas do gulp.js
karma.config.js >> configuração das tasks karma carregadas no arquivo `config.js`
karma.options.js >> configurações do karma usado no arquivo `karma.config.js`
protractor.config.js >> arquivo de configuração do protractor utilizados pela execução do protractor
./publisher/gulp
baseado no [GitHub] soudev / gulp-steps - 04
/publisher
/gulp
gulpfile.js >> arquivo principal do gulp.js
package.json >> dependências node.js para as dependencias do `./publisher`
A estrutura de diretórios do projeto está organizada seguindo o conceito BDD (Behavior Driven Development wikipedia), onde todo um "caso de uso" (comportamento) está dentro de um mesmo diretório, o que possibilita o reúso de código e comportamento
/src
/app
/bookmarks >> exemplo CRUD com mock
>> package.js mapeia todos os arquivos js do diretório
este arquivo é referenciado como dependência no /app/main/module.js
/mock
>> package.js mapeia todos os arquivos js do diretório
este arquivo é referenciado como dependência no /require.mock.load.js
/tests/unit
>> package.js mapeia todos os arquivos js do diretório
este arquivo é referenciado como dependência no /require.unit.load.js
/tests/e2e
>> arquivos carregados pelo Protractor através de uma expressão regular
/about
>> módulo referenciado como denpendência no /app/main/module.js
/help
>> módulo referenciado como denpendência no /app/main/module.js
/home
>> módulo referenciado como denpendência no /app/main/module.js
/main
>> módulo principal da aplicação onde são carregados os demais módulos no /module.js
>> package.js mapeia todos os arquivos js do diretório
este arquivo é referenciado como dependência no /ng.app.js
/shared
/fallback
>> scripts para Internet Explorer
/fend
>> conjunto de módulos úteis reutilizáveis entre projetos e outros módulos
/mock
>> módulo que possibilita emular o backend
/less
/bootstrap
default.less >> thema e configuração padrão para o Bootstrap,
que é importado no /less/app.less
>> outros componentes e configurações
/less
app.less >> mapeia todos os arquivos .less que gera /styles/app.css
/styles
app.css
/vendor
>> bibliotecas de terceiros (ex.: twitter bootstrap, jquery, angular.js, ...)
require.mock.load.js >> lista e referencia todos os mocks a serem carregados
este arquivo é referenciado como dependência no /ng.app.js
require.unit.load.js >> lista e referencia todos os tests a serem carregados
este arquivo é referenciado como dependencia no
./tools/helpers/tests/require.config.js
ng.app.js >> onde inicializa a aplicação Angular.js
require.config.js >> arquivo principal de configuração do projeto
onde são carregados todos os arquivos JavaScript
necessários para executar /ng.app.js
index.html