Tableless

Busca Menu

Yeoman : e quando as coisas dão errado?

Seja o primeiro a comentar por

Eu estava com um projeto parado no github no qual gerei usando o generator web-app. Estou querendo retomar o desenvolvimento do mesmo, só que mudei de computador e tenho que configurar novamente todo o ambiente de desenvolvimento.

Eu uso o Ubuntu para desenvolver, até ai tudo bem. Comecei a seguir os passos para instalação do npm, nodejs, para em seguida instalar o yeoman. É ai que as coisas começam a dar errado.

O que os tutoriais de instalação não te dizem:

Primeiro, antes de instalar qualquer coisa de um update com o comando:

$ $ apt-get update 

Dessa forma você irá instalar a última versão disponível, mas será mesmo? 

Acontece que fiz isso e depois de instalar o npm e nodejs, chegou a vez de instalar o yeoman e é ai que os problemas começam. 

De cara temos problema devido a mudança de nome do nodejs, ele antes era apenas node no binário do linux e agora é nodejs. Então teremos que criar um link simbólico do nodejs para node, mas antes de fazer isso vamos ter certeza que o nosso npm está na última versão disponível. 

Então vamos lá, supondo que você instalou o npm com o comando:

$ $ apt-get update npm 

Você irá executar o seguinte comando :

$ $ npm install -g npm 

Sim, você usa o próprio npm para atualizar. Eu havia tentado o comando abaixo, mas aqui ele não funcionou.

$ $ npm -g update 

E mesmo assim se nada disso funcionar você ainda pode tentar dessa forma (isso se tiver o curl instalado):

$ $ curl https://www.npmjs.org/install.sh | sh

Ufa!! Então agora eu tenho a última versão do npm instalado. Então partimos para criar o link simbólico do nodejs. Primeiro você deve ter instalado o mesmo com o comando:

$ $ apt-get install nodejs

Agora você precisa dar o comando para criar o link simbolico.

$ $ sudo ln -s /usr/bin/nodejs  /usr/bin/node

ou

$ $ sudo ln -s “$(which nodejs)” /usr/bin/node

Pronto agora feito isso teremos que instalar o yeoman e garantir que ele está na sua última versão disponível, pois eu tentei rodar o projeto e ele não conseguia rodar, havia um conflito na versão do yeoman. 

Provavelmente você terá instalado o yeoman + bower com o comando:

$ $ npm install -g yo bower

Apenas para garantir vamos tentar fazer o update do mesmo com o comando:

$ $ npm update -g yo

Certo e agora ? Eu tenho um generator de alguns meses atrás como faço para atualizar o mesmo?

É simples basta você dar o comando:

$ yo

E aparecerá uma tela como essa:

yeoman-options

Agora você atualiza seu projeto e seja feliz. No meu caso como o generator está com controle de versão pelo git, tenho como ver exatamente o que foi alterado. 

Próximo um passo, instalar as dependências com o comando:

$ $ npm install

Agora sim, somente rodar o comando ( $ grunt serve ) para rodar o grunt , mas dai surge um outro alerta.

Ruby e Compass

Informa que eu não tenho o Ruby e o Compass instalado. Eu já tenho o Ruby instalado, falta então instalar o Compass,uso o comando:

$ $ npm install grunt-contrib-compass --save-dev

Mais uma vez tento rodar($ grunt serve) e ele diz que não tenho o compaz no meu $PATH .

Alerta Compass

Ele me dá uma dica para instalar diretamente pelo gerenciador de pacotes do ubuntu com o comando:

$ $ apt-get install ruby-compass

Vai dar certo… Ainda não, ele exibe um outro erro:

image03

Mais uma tentativa vou instalar agora a gem do compass com o comando:

$ $ gem install compass

Rodo novamente e agora não exibe nenhum erro, mas ele pede para rodar com a opção de “- -force”.

alerta sem mensagem de erro

Você venceu Grunt, vou rodar agora com o “– -force”. Agora aparece  o warning que não aparecia, que é a causa do problema.

image02

 

Faltou rodar o bower para instalar as dependências dele, rodo o comando abaixo para isso:

$  bower install

Agora rodo novamente e tudo funciona dessa vez.

Minha motivação para fazer esse texto é que sempre temos tutoriais para o caminho feliz de configuração/ instalação, só que eu sempre tenho problemas de compatibilidade de versão ou coisas do tipo que acabam frustando nesses processos. Enfim, ninguém gosta de ficar horas no stack-overflow lendo possíveis soluções em vez de estar desenvolvendo.

Publicado no dia