webpack.config.cjs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
  2. const path = require('path');
  3. module.exports = {
  4. target: 'web',
  5. entry: {
  6. app: './src/app.ts',
  7. // Package each language's worker and give these filenames in `getWorkerUrl`
  8. 'editor.worker': 'monaco-editor/esm/vs/editor/editor.worker.js',
  9. 'json.worker': 'monaco-editor/esm/vs/language/json/json.worker',
  10. 'css.worker': 'monaco-editor/esm/vs/language/css/css.worker',
  11. 'html.worker': 'monaco-editor/esm/vs/language/html/html.worker',
  12. 'ts.worker': 'monaco-editor/esm/vs/language/typescript/ts.worker',
  13. },
  14. output: {
  15. globalObject: 'self',
  16. filename: '[name].bundle.js',
  17. path: path.resolve(__dirname, 'dist'),
  18. },
  19. resolve: {
  20. extensions: ['.js', '.ts', '.tsx'],
  21. },
  22. module: {
  23. rules: [
  24. {
  25. test: /\.ts$/,
  26. loader: 'ts-loader',
  27. },
  28. {
  29. test: /\.css$/,
  30. use: ['style-loader', 'css-loader'],
  31. },
  32. {
  33. test: /\.ttf$/,
  34. use: ['file-loader'],
  35. },
  36. {
  37. test: /\.wasm$/,
  38. use: ['wasm-loader'],
  39. },
  40. ],
  41. },
  42. // As suggested on:
  43. // https://github.com/NeekSandhu/monaco-editor-textmate/blame/45e137e5604504bcf744ef86215becbbb1482384/README.md#L58-L59
  44. //
  45. // Use the MonacoWebpackPlugin to disable all built-in tokenizers/languages.
  46. plugins: [new MonacoWebpackPlugin({languages: []})],
  47. };