webpack.config.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const staticPath = path.resolve(
  4. __dirname,
  5. '..',
  6. 'src',
  7. 'sentry',
  8. 'static',
  9. 'sentry',
  10. 'app'
  11. );
  12. const sentryConfig = require('../webpack.config');
  13. const appConfig = sentryConfig[0];
  14. const legacyCssConfig = sentryConfig[1];
  15. module.exports = {
  16. module: {
  17. rules: [
  18. {
  19. test: /\.po$/,
  20. loader: 'po-catalog-loader',
  21. query: {
  22. referenceExtensions: ['.js', '.jsx'],
  23. domain: 'sentry',
  24. },
  25. },
  26. {
  27. test: /\.css$/,
  28. use: ['style-loader', 'css-loader'],
  29. },
  30. {
  31. test: /app\/icons\/.*\.svg$/,
  32. use: [
  33. {
  34. loader: 'svg-sprite-loader',
  35. },
  36. {
  37. loader: 'svgo-loader',
  38. },
  39. ],
  40. },
  41. {
  42. test: /\.less$/,
  43. use: [
  44. {
  45. loader: 'style-loader',
  46. },
  47. {
  48. loader: 'css-loader',
  49. },
  50. {
  51. loader: 'less-loader',
  52. },
  53. ],
  54. },
  55. {
  56. test: /\.(woff|woff2|ttf|eot|svg|png|gif|ico|jpg)($|\?)/,
  57. exclude: /app\/icons\/.*\.svg$/,
  58. loader: 'file-loader?name=' + '[name].[ext]',
  59. },
  60. ],
  61. },
  62. plugins: [
  63. new webpack.ProvidePlugin({
  64. $: 'jquery',
  65. jQuery: 'jquery',
  66. 'window.jQuery': 'jquery',
  67. 'root.jQuery': 'jquery',
  68. underscore: 'underscore',
  69. _: 'underscore',
  70. }),
  71. new webpack.DefinePlugin({
  72. 'process.env': {
  73. IS_PERCY: true,
  74. },
  75. }),
  76. ],
  77. resolve: {
  78. extensions: appConfig.resolve.extensions,
  79. alias: Object.assign({}, appConfig.resolve.alias, {
  80. app: staticPath,
  81. }),
  82. },
  83. };