test
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
import * as pdfjsLib from 'pdfjs-dist';
|
||||
|
||||
// Используем ?url-импорт Vite — он корректно резолвится и в dev, и в prod
|
||||
import workerUrl from 'pdfjs-dist/build/pdf.worker.min.mjs?url';
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = workerUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Загрузка PDF документа
|
||||
|
||||
@ -23,6 +23,7 @@ export default defineConfig({
|
||||
injectRegister: 'auto',
|
||||
workbox: {
|
||||
clientsClaim: true,
|
||||
// mjs добавлен, чтобы pdf.worker.min.mjs попадал в precache
|
||||
globPatterns: ['**/*.{js,mjs,css,html,ico,png,svg,wasm}'],
|
||||
navigateFallbackDenylist: [/^\/api\/version/],
|
||||
runtimeCaching: [
|
||||
@ -39,15 +40,11 @@ export default defineConfig({
|
||||
statuses: [0, 200]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
urlPattern: /\/assets\/.*\.(mjs|js)$/,
|
||||
handler: 'CacheFirst',
|
||||
options: {
|
||||
cacheName: 'worker-cache',
|
||||
expiration: { maxEntries: 20, maxAgeSeconds: 60 * 60 * 24 * 30 }
|
||||
}
|
||||
}
|
||||
// ❌ Блок для /\/assets\/.*\.(mjs|js)$/ УДАЛЕН.
|
||||
// Vite автоматически хэширует имена ассетов (например, pdf.worker.min-abc123.mjs)
|
||||
// и добавляет их в precache. Использование CacheFirst в runtimeCaching
|
||||
// для локальных бандлов приводит к тому, что "битые" версии застревают в кэше браузера.
|
||||
]
|
||||
},
|
||||
manifest: {
|
||||
@ -95,7 +92,8 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
},
|
||||
worker: {
|
||||
format: 'es',
|
||||
},
|
||||
|
||||
// ❌ СЕКЦИЯ worker: { format: 'es' } УДАЛЕНА.
|
||||
// pdfjs-dist использует Classic Worker, где глобальный this !== undefined
|
||||
// и доступен importScripts(). ES-модули ломают внутреннюю инициализацию pdf.worker.
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user