1

Como instalar AngularJS Fullstack con Yeoman en un servidor de Producción

Posted by Gabriel on 10 octubre, 2014 in Programación, Solución a Problemas |

En este post, intentaré explicar lo mas breve y conciso posible sobre cómo tener un proyecto de AngularJS funcionando en un servidor de producción (VPS) una vez que se tiene el proyecto funcional. En mi caso voy a explicarlo en un servidor con Centos 7.

1) Es necesario instalar primero NodeJS (desde su web oficial http://nodejs.org/download/) usando el comando wget  (En caso de no estar instalado wget con el siguiente comando pueden hacerlo

yum -y install wget

[Nota: -y significa que instalará la última versión del paquete indicado e instala sin pedir confirmación]). Luego podrá descargar la versión de NodeJS como por ejemplo esta versión de 32bits:

wget http://nodejs.org/dist/v0.10.32/node-v0.10.32-linux-x86.tar.gz

Otra forma es instalarlo vía package manager, teniendo curl instalado en el sistema ejecutar el siguiente comando:

curl -sL https://rpm.nodesource.com/setup | bash -

 y luego:

yum install -y nodejs

2) Ahora se puede instalar Yeoman directamente desde el package manager de NodeJS usando el comando:

npm install -g yo

(Cabe destacar que es necesario tener instalado git en el servidor ya que Bower lo utiliza, pueden instalarlo desde el sitio oficial http://git-scm.com/download/)

Nota: la opción -g significa global y por lo tanto nos pedirá permisos para instalarlo, por lo que si no estamos como root se debe agregar “sudo” al principio del comando, quedando asi:

sudo npm install -g yo

3) Teniendo Yeoman instalado, paso a instalar generator-angular-fullstack utilizado en este proyecto. Para hacerlo, ejecutamos el siguiente comando (Usando -g si queremos instalarlo globalmente para accederlo desde cualquier parte):

npm install -g generator-angular-fullstack

4) Instalando SVN (Explicado en un proximo post) o descargando usando wget nuestro proyecto ya terminado o usando git si tenemos un proyecto ahí como fue en mi caso, clonando mi repositorio en un directorio por ejemplo en /var/repo/MiProyecto con el comando

git clone git://github.com/[usuario]/[nombre-respositorio].git

5) Teniendo el proyecto descargado en el servidor ejecutamos el comando de grunt para generar la version de producción con la minimización de archivos css y js dentro del directorio dist en el proyecto con este comando:

grunt serve:dist

Ahora ingresando en el directorio dist se debe indicar que estamos en un servidor de producción ejecutando este comando:

export NODE_ENV=production

Luego ya podemos ejecutar el proyecto en nuestro server con el comando:

node server.js

Mostrará que está funcionando en el puerto 8080 dado que indicamos que está en producción y no en desarrollo donde usaba el puerto 9000.

En caso que tengan mas de un proyecto en AngularJS que quieran estar ejecutando en simultáneo en un server, se puede hacer poniendo la ejecución en segundo plano con este ejemplo:

node server.js -> output.log &

Almacenando las salidas en el archivo output.log. Para terminar su ejecución en segundo plano debes ejecutar el siguiente comando sabiendo el número de proceso donde está ejecutándose, viendo el número que figura entre corchetes al lanzar el comando anterior para ejecutarlo en segundo plano:

kill %1

Si no sabes su número, se puede buscarlo ejecutando el comando

jobs

y buscando en la lista que nos muestra el comando que lanzamos en este caso node server.js -> output.log & tomando el número que indica entre corchetes al principio de la línea y remplazarlo en el comando anterior donde esta el número 1 por su correspondiente.

Otra forma es usando Forever una sencilla herramienta CLI que permite tener ejecutando varios procesos por tiempo determinado o indeterminado permitiendo administrarlos, es un proyecto Open Source disponible en Git en https://github.com/nodejitsu/forever por lo que para instalarlo en nuestro server de producción ejecutamos el siguiente comando:

npm -g install forever

Y luego cargamos el comando que queremos que se mantenga ejecutándose, como en nuestro caso es el archivo server.js Estando en el directorio dist ejecutamos el comando:

forever start server.js

Para ver la lista de los procesos ejecutándose debemos usar el comando:

forever list

Y para terminar un proceso, debemos saber el número del mismo que se obtiene de la lista y ejecutamos el comando con el número correspondiente, en este caso al ser el primero es el cero:

forever stop 0

NOTA: Al intentar ejecutar otro proceso mas con Forever es posible que nos de un error, y se debe a que Forever almacena los logs de los procesos en ejecución y debemos indicarle que añada un log mas para este nuevo proceso, para esto le agregamos -a al comando start quedando así:

forever start -a server.js

Recuerden cambiar el puerto si usan otro proyecto de AngularJS con generator-angular-fullstack en Yeoman, editando el archivo /dist/lib/config/env/production.js en donde esta el puerto por otro como por ejemplo 8081.

Eso es todo, espero poder seguir en otros post aportando mas al respecto de este tema de AngujarJS y demás.

Saludos!

Share on Facebook0Share on Google+0Tweet about this on Twitter0Pin on Pinterest0Share on Tumblr0Share on LinkedIn0Print this pageEmail this to someone

Etiquetas: , , ,

1 Comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

20 − 13 =

Copyright © 2011-2017 En Mi Tiempo Libre All rights reserved.
This site is using the Desk Mess Mirrored Child Child-Theme, v1.0, on top of
the Parent-Theme Desk Mess Mirrored, v2.5, from BuyNowShop.com