IOS Safari загружает устаревший JavaScriptIOS

Программируем под IOS
Ответить
Anonymous
 IOS Safari загружает устаревший JavaScript

Сообщение Anonymous »

Проблема
Safari на iOS пытается загрузить javascript, которого еще нет в HTML, что приводит к сбою приложения.

Происходит после публикации любого обновления (первоначальный чистый запуск — работает нормально)
Контекст
Приложение React, Vite в качестве сборщика.
Без "кусков" все работает нормально. При «чанкировании» все работает везде, кроме Safari iOS
Шаги по воспроизведению [*]Добавьте простое разбиение на фрагменты: [*]node_modules отправляется поставщику [*]все остальное попадает в index
rollupOptions: { выход: { enterFileNames: 'assets/[имя].[хэш].js', manualChunks: (id: string) => { если (id.includes('node_modules')) { вернуть «поставщик»; } еще { вернуть «пакет»; } }, chunkFileNames: (chunkInfo) => { константный хэш = createHash('md5') .update(Object.values(chunkInfo.moduleIds).join()) .digest('шестнадцатеричный') .substr(0, 6); вернуть 'активы/[имя].' + хэш + '.js'; }, }, }, [*]Создайте первоначальную сборку (назовем ее «сборка V1») [*]dist/assets/index.SBYBNO79.js [*]dist/assets/vendor.b1e99d.js
Изображение


Открываем в iOS - все работает нормально
[*]Сделать любое обновление, перестроить (назовите это «сборка V2») [*]dist/assets/index.-9z7R_h8.js (обновлено) [*]dist/assets/vendor.b1e99d.js (тот же)

Изображение

[*]Теперь, когда iOS Safari загружает веб-приложение, оно извлекает все новые данные из нового HTML.
Но он также загружает старый index.SBYBNO79.js, хотя в HTML о нем нет упоминания


Изображение



Изображение

Мысли
Меня это не слишком беспокоило бы, но это приводит к сбою приложения, поскольку оно не синхронизировано с пакетом vendor.

Один из вариантов может быть — полностью отключить кеширование. Но в том-то и дело: я хочу, чтобы JavaScript, на который ссылается HTML, был кэширован.

Происходит только в iOS Safari (мобильный телефон)

Уже 2 недели пытался его отладить, все гуглил. Удалось сузить круг до этого «дополнительного» запроса JavaScript.

Буду признателен за любую подсказку/направление.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»