Полимер CLI Build | Методы уничтожения кэша
Немного предыстории: мое приложение построено на Polymer 2.x и размещено на сервере, который не поддерживает HTTP/2 и не имеет сертификата для HTTPS. Мы должны поддерживать IE11, Chrome, Firefox и Safari.
Проблема: у меня проблема с кэшированием браузера. Я надеялся использовать работника сервиса, который генерирует CLI Polymer, для обработки кеша. Однако, так как на сервере нашего клиента не включен HTTPS, мы не можем его использовать. Несмотря на это, мы должны поддерживать IE 11 в одной сборке, поэтому сервисные работники не вариант.
Я не могу найти способ разрушить кеш при новых развертываниях. На странице Polymer CLI github есть открытая проблема по этой теме, но с 2016 года не было никакой тяги. От просмотра видео YouTube на Polymer, похоже, есть (или был) способ перехватить сборка с использованием Gulp, но я не могу понять это.
Любая помощь очень ценится!
3 ответа
Вы можете использовать polymer-build
библиотека, если вы хотите построить проект Polymer, используя gulp
, Вы можете прочитать об этом здесь:
https://github.com/Polymer/polymer-build
Кратко упомянуто в документации здесь:
https://www.polymer-project.org/2.0/toolbox/build-for-production
Тогда вы можете кэшировать бюст, используя что-то вроде gulp-rev
, но вы должны убедиться, что вы не переписываете имена пользовательских элементов, а только имена файлов и пути импорта. (Я попробовал это один раз с gulp-rev-all
и по умолчанию он заменял <app-header>
с <app-header-a9fe00>
или что-то типа того.)
При создании прогона сборки polymer build sw-precache-config.js
Я создал gulp-polymer-build, чтобы помочь с этой проблемой. Заимствует из polymer-cli build
код, и поддерживает ваши конфигурации сборки в polymer.json
, Это позволяет вам изменять исходный поток перед сборкой, а затем изменять разветвленные потоки для всех сборок, которые вы настроили в polymer.json
, Это облегчает использование gulp-rev
а также gulp-rev-replace
сделать управление активами.