Saltar al contenido

cómo habilitar la compresión gzip en angular cli para compilación de producción

Al fin después de tanto batallar ya encontramos la contestación de esta duda que muchos usuarios de este espacio presentan. Si tienes algún detalle que compartir no dejes de aportar tu información.

Solución:

El equipo de Angular-cli ha eliminado el soporte para generar archivos comprimidos (.gz). URL de discusión de Github.

Podemos usar una tarea de trago para ello. Instale los siguientes módulos npm:

$npm install --save-dev gulp
$npm install --save-dev gulp-gzip

Crear gulpfile.js

var gulp = require('gulp');
var gzip = require('gulp-gzip');

gulp.task('compress', function() 
  return gulp.src(['./dist/**/*.*'])
      .pipe(gzip())
      .pipe(gulp.dest('./dist'));
);

Ya que .gz El soporte se puede configurar en los servidores web, pero el servidor tiene que comprimirse por sí mismo y gastar algunos ciclos de CPU para ello. Si lo construimos previamente, ayuda al servidor a ahorrar algunos ciclos de CPU. 🙂

Podemos agregarlo en package.json como secuencia de comandos para ejecutar después de cada build de aplicación

"scripts": 
       ...
       "postbuild": "gulp compress"
       ...
   

Tengo entendido que el equipo de cli eliminó la opción de compresión .gz porque la mayoría de los servidores comprimirán los archivos automáticamente antes de enviarlos al navegador (siempre que el navegador admita respuestas comprimidas, lo que la mayoría hace).

Puede lograr esto con un script bash simple antes de transferirlos al servidor, o incluso agregarlo a package.json como un comando

 "scripts": {
   "build.prod": "ng build --environment=prod && tar -zcvf archive.tar.gz dist/prod/*",

No estoy seguro de cuál es su estructura de carpetas, pero puede jugar con tar -zcvf archive.tar.gz dist/prod/* en la terminal hasta encontrar rutas que se adapten a tus necesidades.

EDITAR: Parece que no entendí bien la pregunta, si se trata del tamaño del paquete al servir las cosas al usuario final, debería echar un vistazo a AOT + Rollup para minimizar el tamaño de su paquete. Y habilite la compresión gzip en su servidor web cuando sirva archivos (probablemente la mayoría de los servidores ya lo tengan habilitado).

Comentarios y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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