page navigationend angular2 deployment amazon-ec2 angular

deployment - navigationend - Aplicación Publishing Angular 2(implementación)



title angular 6 (2)

Finalmente terminé la parte difícil de mi aplicación angular 2, y quiero verla en vivo en el servidor.

Tengo alojamiento web Linux. Estoy alojando sitios web PHP y SQL y me pregunto cómo puedo alojar la aplicación angular 2, ya que la estoy ejecutando usando npm start .

Alguien me habló de Amazon EC2, pero no estoy seguro de cómo funciona, ya que es la primera vez que ofrezco esta aplicación.

Leí esto: sobre la publicación de la aplicación Angular 2 y noté que necesito compilar mi aplicación con JSPM (?) Y usarla de alguna manera. Así que traté de usarlo. creó la carpeta jspm_packages en la raíz de mi aplicación, pero no tengo idea de lo que significaba ni cómo usarla.

  • ¿Alguna ayuda sobre cómo publicar mi aplicación en un alojamiento web o en Amazon EC2 / De otra forma puedo permitir que otras personas vean y usen mi aplicación? Mi aplicación es Angular2 y Laravel como back-end.

De hecho, hay dos pasos aquí:

Para el segundo paso, el servidor puede alojarse en EC2, por ejemplo. Pero puedes notar que incluso puedes alojarlo en Github con gh-páginas. Creo que este enlace podría ayudarlo: https://gist.github.com/chrisjacob/833223 . De hecho, depende de tu necesidad ...


Si te refieres al Elastic Beanstalk nodejs ec2, entonces esta respuesta es la mejor para ti, ya que me tomó un tiempo darme cuenta de esto, pero resultó ser más fácil de lo que pensaba:

  1. Siguiendo este enlace con algunas modificaciones que hice para evitar /usr/bin/env: node: No such file or directory , agregué el siguiente script

.ebextensions/angular2deployment.config

files: "/opt/elasticbeanstalk/env.vars" : mode: "000775" owner: root group: users content: | export NPM_CONFIG_LOGLEVEL=error export NODE_PATH=`ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin "/opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh" : mode: "000775" owner: root group: users content: | #!/bin/bash . /opt/elasticbeanstalk/env.vars function error_exit { eventHelper.py --msg "$1" --severity ERROR exit $2 } #install not-installed yet app node_modules if [ ! -d "/var/node_modules" ]; then mkdir /var/node_modules ; fi if [ -d /tmp/deployment/application ]; then ln -s /var/node_modules /tmp/deployment/application/ fi OUT=$([ -d "/tmp/deployment/application" ] && cd /tmp/deployment/application && $NODE_PATH/node $NODE_PATH/npm install 2>&1) || error_exit "Failed to run npm install. $OUT" $? echo $OUT "/opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh" : mode: "000666" owner: root group: users content: | #no need to run npm install during configdeploy

  1. Eliminar node_modules & dist folder si lo tiene, ambos no son necesarios.
  2. Ejecute npm install && npm start (este paso debe ser exitoso), tenga en cuenta que estoy usando el paquete predeterminado de angular2. Json Consulte Despliegue angular.IO
  3. Si # 3 es exitoso, entonces puede volver a eliminar node_modules nuevamente
  4. Seleccione Todos los archivos y carpetas en el proyecto (asegúrese de que .ebextensions se seleccione .ebextensions ), y luego .ebextensions , no comprima la carpeta superior (tendrá un subdirectorio durante la implementación que interrumpirá la implementación)
  5. ¡Ahora puede desplegar ese archivo comprimido y disfrutarlo!

Si está usando MacOS, mientras comprime, macos agregará una carpeta macos que romperá la implementación, asegúrese de usar una herramienta que no agregue este directorio adicional, en mi caso utilicé YemuZip

Nota adicional: EC2 beanstalk elástico ejecutará npm install y npm start , es por eso que recomendaría ejecutarlos y asegurarme de que estén bien en su entorno local.