diff --git a/src/lib/common/services/pdf.service.js b/src/lib/common/services/pdf.service.js index 0cc37ea..8bde43d 100644 --- a/src/lib/common/services/pdf.service.js +++ b/src/lib/common/services/pdf.service.js @@ -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'; -pdfjsLib.GlobalWorkerOptions.workerSrc = workerUrl; +if (typeof window !== 'undefined') { + pdfjsLib.GlobalWorkerOptions.workerSrc = workerUrl; +} /** * Загрузка PDF документа diff --git a/vite.config.js b/vite.config.js index 56ea7f4..b43a856 100644 --- a/vite.config.js +++ b/vite.config.js @@ -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. })