Обслуживание файлов, загруженных gulp, на хостинге Firebase

#angular #gzip #angular9 #firebase-hosting

#angular #gzip #angular9 #firebase-хостинг

Вопрос:

У меня есть приложение Angular 9, которое на самом деле недостаточно большое, но каким-то образом main.js размер пакета составляет 1,7 Мб. В package.json всего несколько зависимостей

 "dependencies": {
"@angular/animations": "~9.0.2",
"@angular/cdk": "^9.0.1",
"@angular/common": "~9.0.2",
"@angular/compiler": "~9.0.2",
"@angular/core": "~9.0.2",
"@angular/fire": "^6.0.2",
"@angular/forms": "~9.0.2",
"@angular/material": "^9.0.1",
"@angular/platform-browser": "~9.0.2",
"@angular/platform-browser-dynamic": "~9.0.2",
"@angular/router": "~9.0.2",
"firebase": "^7.9.3",
"ngx-image-cropper": "^3.1.9",
"rxjs": "~6.5.4",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
  

После ng-build --prod функции я запускаю gulp compress архивирование всех встроенных файлов:

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

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

Здесь у меня есть этот список файлов в каталоге dist:

Пробовал разные способы (включая обслуживание только файлов .gz), но я не получаю ни ошибку, ни файл того же размера. Любая помощь была бы очень полезна, спасибо!

Ответ №1:

Хостинг Firebase автоматически сжимается с помощью gzip, поэтому вам не следует делать это вручную.

Каждый загружаемый вами файл кэшируется на твердотельных накопителях по краям CDN по всему миру и подается как gzip или Brotli. Мы автоматически выбираем наилучший метод сжатия для вашего контента. Независимо от того, где находятся ваши пользователи, контент доставляется быстро.

https://firebase.google.com/docs/hosting

Комментарии:

1. Да, я вижу в заголовках ответов, что текущий тип кодировки — br. Но я также заметил, что размер файла в Web практически такой же, как и на моем ПК. Может быть, я не совсем понимаю, как работает все это кодирование, но кажется, что ничего не сжимается.

2. Вероятно, это зависит от того, какой инструмент вы используете для просмотра размера. Некоторые инструменты могут показывать фактический размер по умолчанию вместо размера передачи.