webpack.cypress.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. directory: path.join(__dirname, '../../public'),
  14. watch: false,
  15. },
  16. port: 3200,
  17. },
  18. stats: 'none',
  19. plugins: [
  20. new webpack.EnvironmentPlugin({
  21. CYPRESS: true,
  22. }),
  23. new HtmlWebpackPlugin({
  24. template: path.resolve('./component-index.html'),
  25. }),
  26. ],
  27. } as any)
  28. delete webpackConfig.devServer.client
  29. webpackConfig.entry = {}
  30. const addWorker = (name: string, importPath: string) => {
  31. webpackConfig.entry[name] = require.resolve(importPath)
  32. }
  33. // add entrypoint under '/' for latex-linter worker
  34. addWorker(
  35. 'latex-linter-worker',
  36. '../../frontend/js/features/source-editor/languages/latex/linter/latex-linter.worker'
  37. )
  38. // add entrypoint under '/' for hunspell worker
  39. addWorker(
  40. 'hunspell-worker',
  41. '../../frontend/js/features/source-editor/hunspell/hunspell.worker'
  42. )
  43. // add entrypoint under '/' for references worker
  44. addWorker(
  45. 'references-worker',
  46. '../../frontend/js/features/ide-react/references/references.worker.ts'
  47. )
  48. // add entrypoints under '/' for pdfjs workers
  49. addWorker('pdfjs-dist', 'pdfjs-dist/build/pdf.worker.mjs')
  50. return webpackConfig
  51. }
  52. export const webpackConfig = buildConfig()