From 53d6b4dfd053f50757984cd8ef0af2a7c283dd13 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Wed, 9 Oct 2024 09:20:06 +0100 Subject: [PATCH] Set `workerPublicPath` in webpack config (#20629) GitOrigin-RevId: 3fba33a6b52bf2a91f3126efc9d76f6f1dfbc1c4 --- services/web/cypress/support/webpack.cypress.ts | 3 +++ .../js/features/pdf-preview/util/pdf-js.ts | 10 ++++------ .../source-editor/hunspell/HunspellManager.ts | 14 ++++++-------- .../languages/latex/linter/latex-linter.ts | 13 +++++-------- services/web/frontend/js/utils/worker.js | 9 --------- services/web/webpack.config.js | 1 + 6 files changed, 19 insertions(+), 31 deletions(-) delete mode 100644 services/web/frontend/js/utils/worker.js diff --git a/services/web/cypress/support/webpack.cypress.ts b/services/web/cypress/support/webpack.cypress.ts index 550ae31c73..eb8884c5e7 100644 --- a/services/web/cypress/support/webpack.cypress.ts +++ b/services/web/cypress/support/webpack.cypress.ts @@ -6,6 +6,9 @@ import devConfig from '../../webpack.config.dev' const buildConfig = () => { const webpackConfig = merge(devConfig, { + output: { + workerPublicPath: '/__cypress/src/', + }, devServer: { static: path.join(__dirname, '../../public'), port: 3200, diff --git a/services/web/frontend/js/features/pdf-preview/util/pdf-js.ts b/services/web/frontend/js/features/pdf-preview/util/pdf-js.ts index edb56da4ac..51a3bc9891 100644 --- a/services/web/frontend/js/features/pdf-preview/util/pdf-js.ts +++ b/services/web/frontend/js/features/pdf-preview/util/pdf-js.ts @@ -1,14 +1,12 @@ -import { createWorker } from '@/utils/worker' import * as PDFJS from 'pdfjs-dist' import type { DocumentInitParameters } from 'pdfjs-dist/types/src/display/api' export { PDFJS } -createWorker(() => { - PDFJS.GlobalWorkerOptions.workerPort = new Worker( - new URL('pdfjs-dist/build/pdf.worker.mjs', import.meta.url) // NOTE: .mjs extension - ) -}) +PDFJS.GlobalWorkerOptions.workerPort = new Worker( + /* webpackChunkName: "pdf-worker" */ + new URL('pdfjs-dist/build/pdf.worker.mjs', import.meta.url) // NOTE: .mjs extension +) export const imageResourcesPath = '/images/pdfjs-dist/' const cMapUrl = '/js/pdfjs-dist/cmaps/' diff --git a/services/web/frontend/js/features/source-editor/hunspell/HunspellManager.ts b/services/web/frontend/js/features/source-editor/hunspell/HunspellManager.ts index 0eae7b1328..27301330bf 100644 --- a/services/web/frontend/js/features/source-editor/hunspell/HunspellManager.ts +++ b/services/web/frontend/js/features/source-editor/hunspell/HunspellManager.ts @@ -1,5 +1,4 @@ import { v4 as uuid } from 'uuid' -import { createWorker } from '@/utils/worker' import getMeta from '@/utils/meta' import { debugConsole } from '@/utils/debugging' @@ -50,14 +49,13 @@ export class HunspellManager { this.dictionariesRoot = getMeta('ol-dictionariesRoot') - createWorker(() => { - this.hunspellWorker = new Worker( - new URL('./hunspell.worker.ts', import.meta.url), - { type: 'module' } - ) + this.hunspellWorker = new Worker( + /* webpackChunkName: "hunspell-worker" */ + new URL('./hunspell.worker.ts', import.meta.url), + { type: 'module' } + ) - this.hunspellWorker.addEventListener('message', this.receive.bind(this)) - }) + this.hunspellWorker.addEventListener('message', this.receive.bind(this)) } destroy() { diff --git a/services/web/frontend/js/features/source-editor/languages/latex/linter/latex-linter.ts b/services/web/frontend/js/features/source-editor/languages/latex/linter/latex-linter.ts index b440f21a36..fefd4f0e73 100644 --- a/services/web/frontend/js/features/source-editor/languages/latex/linter/latex-linter.ts +++ b/services/web/frontend/js/features/source-editor/languages/latex/linter/latex-linter.ts @@ -1,16 +1,13 @@ -import { createWorker } from '../../../../../utils/worker' import { EditorView } from '@codemirror/view' import { Diagnostic } from '@codemirror/lint' import { errorsToDiagnostics, LintError } from './errors-to-diagnostics' import { mergeCompatibleOverlappingDiagnostics } from './merge-overlapping-diagnostics' -let lintWorker: Worker -createWorker(() => { - lintWorker = new Worker( - new URL('./latex-linter.worker.js', import.meta.url), - { type: 'module' } - ) -}) +const lintWorker = new Worker( + /* webpackChunkName: "latex-linter-worker" */ + new URL('./latex-linter.worker.js', import.meta.url), + { type: 'module' } +) class Deferred { public promise: Promise diff --git a/services/web/frontend/js/utils/worker.js b/services/web/frontend/js/utils/worker.js deleted file mode 100644 index 28f161c37e..0000000000 --- a/services/web/frontend/js/utils/worker.js +++ /dev/null @@ -1,9 +0,0 @@ -export const createWorker = callback => { - if (process.env.CYPRESS) { - return callback() - } - const webpackPublicPath = __webpack_public_path__ - __webpack_public_path__ = '/' - callback() - __webpack_public_path__ = webpackPublicPath -} diff --git a/services/web/webpack.config.js b/services/web/webpack.config.js index e8f7b17d36..4047bbbc6c 100644 --- a/services/web/webpack.config.js +++ b/services/web/webpack.config.js @@ -98,6 +98,7 @@ module.exports = { path: path.join(__dirname, 'public'), publicPath: '/', + workerPublicPath: '/', // By default write into js directory filename: 'js/[name]-[contenthash].js',