Controle de versão de Appcelerator e Node.js no Mac

Eu não tinha criado um aplicativo em Titanium recentemente porque estava me concentrando em alguns outros projetos baseados em Xojo. Passou algum tempo e nem abri o IDE. Então, um projeto demorou e eu precisei retirar o Appcelerator novamente e tirar o pó dele. Eu abri um projeto onde o havia parado. Houve uma atualização para instalar o Titanium – fiz isso – abri meu projeto e iniciei uma compilação para o simulador do iphone – e encontrei o seguinte erro:

/usr/local/lib/node_modules/titanium/node_modules/longjohn/dist/longjohn.js:181 throw e;

O aplicativo não iria construir – as ferramentas de linha de comando não funcionariam – um caos total.

… Acontece que eu atualizei minha instalação do Node.js para outro projeto em que estava trabalhando e o Titanium não gostou. Eles preferem que você use algo da família 0.8.x e eu estava na 0.11.4, então isso definitivamente não iria funcionar. Felizmente, já existem dois utilitários muito interessantes que tornam o gerenciamento de qual versão do nó você está usando muito fácil: ne nvm.

Eu pessoalmente prefiro n, mas nvm funcionou melhor neste caso porque meu shell preferido é tcsh, mas o de Titanium é bash … nvm funciona muito bem em bash e para Titanium.

Solução

Portanto, em poucas palavras, a solução é instalar o nvm, instalar o Node.js v0.8.25 usando o nvm, torná-lo a versão do nó padrão e ENTÃO executar o Titanium. Voila – de volta ao normal!

Algo assim sob bash:

#get nvm
curl https
://raw.github.com/creationix/nvm/master/install.sh | sh

#get an older node version
nvm install
0.8.25

#use the new old version and set it as default
nvm
use 0.8.25
nvm
alias default 0.8.25

#check
node
-v

#should say 'v0.8.25'

Embargo

Como meu shell padrão e o shell padrão do Titanium eram diferentes, precisei de alguns passos extras para resolver isso, mas a maneira mais fácil teria sido apenas acessar o terminal de Titanium> Window> Show View> Terminal Editor e instalar o nvm, etc a partir daí. Dessa forma, tudo está exatamente onde o Titanium pode encontrar. Estou em um mac BTW.

Estou postando isso apenas no caso de alguém estar correndo para ele. Se você achou isso útil de alguma forma, por favor me avise.

http://john-joyce.com/2013/07/23/appcelerator-and-node-js/