webpack.config.js 2.0 KB

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