webpack.cypress.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { merge } from 'webpack-merge'
  2. import path from 'path'
  3. import webpack from 'webpack'
  4. import HtmlWebpackPlugin from 'html-webpack-plugin'
  5. import devConfig from '../../webpack.config.dev'
  6. const buildConfig = () => {
  7. const webpackConfig = merge(devConfig, {
  8. output: {
  9. workerPublicPath: '/__cypress/src/',
  10. },
  11. devServer: {
  12. static: [
  13. {
  14. directory: path.join(__dirname, '../../public'),
  15. watch: false,
  16. },
  17. {
  18. directory: path.join(__dirname, '../../public/js/libs/pyodide'),
  19. publicPath: '/__cypress/src/js/libs/pyodide/',
  20. watch: false,
  21. },
  22. ],
  23. port: 3200,
  24. },
  25. stats: 'none',
  26. plugins: [
  27. new webpack.EnvironmentPlugin({
  28. CYPRESS: true,
  29. }),
  30. new HtmlWebpackPlugin({
  31. template: path.resolve('./component-index.html'),
  32. }),
  33. ],
  34. } as any)
  35. delete webpackConfig.devServer.client
  36. webpackConfig.entry = {}
  37. const addWorker = (name: string, importPath: string) => {
  38. webpackConfig.entry[name] = require.resolve(importPath)
  39. }
  40. // add entrypoint under '/' for latex-linter worker
  41. addWorker(
  42. 'latex-linter-worker',
  43. '../../frontend/js/features/source-editor/languages/latex/linter/latex-linter.worker'
  44. )
  45. // add entrypoint under '/' for hunspell worker
  46. addWorker(
  47. 'hunspell-worker',
  48. '../../frontend/js/features/source-editor/hunspell/hunspell.worker'
  49. )
  50. // add entrypoint under '/' for references worker
  51. addWorker(
  52. 'references-worker',
  53. '../../frontend/js/features/ide-react/references/references.worker.ts'
  54. )
  55. // add entrypoints under '/' for pdfjs workers
  56. addWorker('pdfjs-dist', 'pdfjs-dist/build/pdf.worker.mjs')
  57. return webpackConfig
  58. }
  59. export const webpackConfig = buildConfig()