o tipo de ferramentas que podem substituí- los no final. Preguiçosos, porque somente um programador preguiçoso vai evitar escrever código monótono e repetitivo – assim evitando redundância, o inimigo da mantenabilidade e flexibilidade de software. No mais, as ferramentas e processos que vêm disso, disparados pela preguiça, irão aumentar a produção.
soluções a um problema, precisa manter uma mente aberta e pensar fora da caixa. De certa forma, isso leva à mentalidade de uma criança, incrivelmente criativa porque ele nunca ouviu “não” como resposta.
no brackets. O jQuery usa o grunt no jQuery no jQuery UI e no QUnit O twitter usa o Grunt no TweetDeck e no Typeahead O Apontador.com usa o grunt nos seus projetos. ... E BUSCANDO O TERMO GRUNTJS NO GITHUB EU ENCONTREI: 476 repositorios públicos 898 issues (a maioria pedindo para instalar o gruntjs nos projetos)
por ele que você pode facilmente instalar programas em nodejs na sua máquina. https://npmjs.org/ O NPM não precisa ser instalado, ele vem com o nodejs.
- g g r u n t - c l i s u d o n p m i n s t a l l - g g r u n t - c l i VAMOS AO GRUNT: Para começar a usar o grunt, você tem que instalar o grunt-cli que é a interface de linha de comando do grunt: OU
e permitir que você use esse comando em qualquer lugar. Porém o grunt-cli não instala o grunt em sí, o que o grunt-cli faz é rodar a versão do grunt que está instalada no seu projeto, o que permite que você tenha varias versões do grunt instaladas na mesma maquina simultaneamente.
ele usa o sistema de require do node pra encontrar um grunt instalado, o que permite que você tenha o grunt instalado nas pastas do seu projeto. Se ele encontrar um grunt instalado na pasta que você rodou o comando, ele carrega as bibliotecas do seu grunt aplicas as configurações dele e roda as tarefas que você pediu para ele rodar.
criar o nosso Gruntfile.js. O Gruntfile.js é composto pelas seguintes partes: A função "wrapper". As configurações do projeto e das tarefas. O carregamento dos plugins e das tarefas. As suas tarefas customizadas.
o r t s = f u n c t i o n ( g r u n t ) { ' u s e s t r i c t ' ; g r u n t . i n i t C o n f i g ( { p k g : g r u n t . f i l e . r e a d J S O N ( ' p a c k a g e . j s o n ' ) } ) ; } ; Ela vai receber um objeto grunt com um metodo initConfig onde você vai colocar as configurações do seu projeto e das tasks. As configurações do nosso projeto podemos passar para o grunt pelo arquivo package.json:
o r t s = f u n c t i o n ( g r u n t ) { ' u s e s t r i c t ' ; g r u n t . i n i t C o n f i g ( { p k g : g r u n t . f i l e . r e a d J S O N ( ' p a c k a g e . j s o n ' ) } ) ; / / c a r r e g a n d o p l u g i n s g r u n t . l o a d N p m T a s k s ( ' g r u n t - c o n t r i b - c o n n e c t ' ) ; } ; Agora vamos carregar o plugin:
o r t s = f u n c t i o n ( g r u n t ) { ' u s e s t r i c t ' ; g r u n t . i n i t C o n f i g ( { p k g : g r u n t . f i l e . r e a d J S O N ( ' p a c k a g e . j s o n ' ) , c o n n e c t : { s e r v e r : { o p t i o n s : { p o r t : 9 0 0 1 } } } } ) ; / / c a r r e g a n d o p l u g i n s g r u n t . l o a d N p m T a s k s ( ' g r u n t - c o n t r i b - c o n n e c t ' ) ; / / r e g i s t r a n d o t a r e f a s g r u n t . r e g i s t e r T a s k ( ' c r e a t e s e r v e r ' , [ ' c o n n e c t : s e r v e r ' ] ) ; } ; E finalmente vamos registrar uma tarefa para o nosso plugin: