visual tutorial studio proyecto node ejemplos crear node.js web-deployment mean-stack

tutorial - Cómo implementar la aplicación MEAN.js(Node.js) en el entorno de producción



npm (1)

Recomiendo hacer los siguientes pasos para la implementación en el entorno de producción:

  1. Verifique dos /config/env/production.js archivo de configuración /config/env/production.js e incluya todos los activos que agregó manualmente en /config/env/all.js . Es un buen enfoque para usar versiones minificadas para producción.

  2. (Opcional) Si tiene fuentes personalizadas en su aplicación, recomiendo actualizar gruntfile.js y agregar una tarea que copie las fuentes en la carpeta / public / dist /. Hice los siguientes cambios:

    copy: { main:{ expand: true, flatten: true, src: [''public/modules/core/fonts/*''], dest: ''public/dist/'', filter: ''isFile'' } }, ... // Build task(s). grunt.registerTask(''build'', [''lint'', ''loadConfig'', ''ngmin'', ''uglify'', ''cssmin'', ''copy'']);

    La tarea de copia requiere instalar el módulo de copia ronca.

  3. Ahora es el momento de crear los archivos de application.js, application.min.js y application.min.css para producción (ver la carpeta /public/dist ). Ejecutar en la carpeta de aplicaciones

    $grunt build

  4. Copie los archivos al servidor de producción. Prefiero usar el despliegue GIT push. Envía al servidor solo cambios incrementales. Si usa GIT para la implementación de inserción, debe agregar todos los archivos de la carpeta `/ public / dist / ''al repositorio.

  5. Debido a que usa express.js en su proyecto, es suficiente usar el comando

    $NODE_ENV=production node server.js&

    Sé que algunos desarrolladores usan para siempre (módulo para node.js), pero prefiero usar UPSTART (daemon de inicio basado en eventos) que está disponible de forma predeterminada en Ubuntu como servicio de sistema. Creo un archivo de configuración en la carpeta /etc/init , por ejemplo, /etc/init/my-app.conf . Después de esto puedo comenzar, detener, reiniciar mi aplicación como un servicio. Ej. Service my-app start | stop | restart

    El UPSTART monitoreará y reiniciará su servicio en caso de falla (vea el comando respawn en la configuración de UPSTART). Puede encontrar una respuesta detallada sobre cómo hacer un archivo de configuración UPSTART aquí: upstart script for node.js

  6. (Opcional, pero recomendado) Instale nginx delante de Node.js Se recomienda ejecutar su aplicación web con un usuario sin privilegios debido a razones de seguridad, por otro lado, si desea usar el puerto 80 (es un puerto predeterminado para el protocolo http) para su aplicación web (por ejemplo, http://my-app-domain.com/ lugar de http://my-app-domain.com:3000/ ) tal configuración puede ser complicada. Debido a esto, uso Nginx (puerto 80) delante de mi aplicación web que realmente funciona en el puerto disponible para usuarios sin privilegios (por ejemplo, 3000)

    6a. En lugar de Nginx puedes usar Barniz

MEAN.JS stack propone la tarea " MEAN.JS " para preparar la aplicación para Producción. Desafortunadamente, hay una falta de información sobre los próximos pasos. En realidad, no está claro cómo implementar la aplicación en producción y cómo lanzarla.

Pregunta # 1 ¿Qué se debe configurar en el proyecto además de los cambios en config / env / production.js? Por ejemplo, ¿cómo trabajar con fuentes personalizadas?

Pregunta # 2 Ok. El código implementado en Producción (a través de Git, rsync, etc.). ¿Es suficiente correrlo como

$NODE_ENV=production node server.js&