Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (3)
  • Бесшовная интеграция с Gulp?

    @Drag13
    1. Во время того как делаете бандл, считаете его хеш или берете Date.now() (но это костыль, см. ниже)
    2. Во время выкладки бандла динамически даете ему имя вида bundle.HASH.js где hash - то что вы посчитали выше. Для css - аналогично. Для других ресурсов (изображений может быть много) можно менять название папки в которой они лежат, но это инвалидирует сразу всю пачку, так что лучше тоже считать индивидуально.
    3. Во время билда, меняете свой index.html или загрзучик что бы он подтягивал бандлы с новыми именами
    4. Проверяете, что ваш index.html или js не кешируются и всегда достаются свежими.
    5. Профит


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

    1. Date.now() будет меняться каждый раз при билде даже если содержимое файлов не поменялись. Это особенно плохо если у вас тяжелые бандлы, так как клиенту придется грузить их заново после каждого релиза. Так что гуглите как посчитать хеш.
    2. См. gulp.dest. Продумайте стратегию поведения для изображений, шрифтов и других ресурсов которые вы грузите (например словарь локализации).
    3. См. gulp-replace. С помощью него вы сможете взять index.html файл и заменить в нем scripts.js -> bundle.123.js. Отдельная песня для локальной разработки. В моем случае для локальной работы я гружу бандл из local/script.js, а во время билда для прода подменяю все пути на файлы с хешем.
    4. см. настройки сервера на предмет cache-control и им подобных. Обязательно перепроверьте на проде, настройки сервера на разных енвайроментах могут быть разные.

    Ответ написан

Лучшие вопросы пользователя

Все вопросы (1)