overleaf/services/web/cypress/support/webpack.cypress.ts
Alf Eaton 53d6b4dfd0 Set workerPublicPath in webpack config (#20629)
GitOrigin-RevId: 3fba33a6b52bf2a91f3126efc9d76f6f1dfbc1c4
2024-10-14 11:06:45 +00:00

52 lines
1.3 KiB
TypeScript

import { merge } from 'webpack-merge'
import path from 'path'
import webpack from 'webpack'
import HtmlWebpackPlugin from 'html-webpack-plugin'
import devConfig from '../../webpack.config.dev'
const buildConfig = () => {
const webpackConfig = merge(devConfig, {
output: {
workerPublicPath: '/__cypress/src/',
},
devServer: {
static: path.join(__dirname, '../../public'),
port: 3200,
},
stats: 'none',
plugins: [
new webpack.EnvironmentPlugin({
CYPRESS: true,
}),
new HtmlWebpackPlugin({
template: path.resolve('./component-index.html'),
}),
],
} as any)
delete webpackConfig.devServer.client
webpackConfig.entry = {}
const addWorker = (name: string, importPath: string) => {
webpackConfig.entry[name] = require.resolve(importPath)
}
// add entrypoint under '/' for latex-linter worker
addWorker(
'latex-linter-worker',
'../../frontend/js/features/source-editor/languages/latex/linter/latex-linter.worker'
)
// add entrypoint under '/' for hunspell worker
addWorker(
'hunspell-worker',
'../../frontend/js/features/source-editor/hunspell/hunspell.worker'
)
// add entrypoints under '/' for pdfjs workers
addWorker('pdfjs-dist', 'pdfjs-dist/build/pdf.worker.mjs')
return webpackConfig
}
export const webpackConfig = buildConfig()