webpack.cypress.ts 1.3 KB

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