webpack.config.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const path = require('path');
  2. module.exports = ({config, mode}) => {
  3. config.module.rules.push({
  4. test: /\.(ts|tsx)$/,
  5. use: [
  6. {
  7. loader: require.resolve('awesome-typescript-loader'),
  8. options: {
  9. configFileName: path.resolve(__dirname+'/../tsconfig.json')
  10. }
  11. },
  12. ],
  13. });
  14. config.module.rules.push({
  15. test: /\.scss$/,
  16. use: [
  17. {
  18. loader: 'style-loader/useable',
  19. },
  20. {
  21. loader: 'css-loader',
  22. options: {
  23. importLoaders: 2,
  24. },
  25. },
  26. {
  27. loader: 'postcss-loader',
  28. options: {
  29. sourceMap: false,
  30. config: { path: __dirname + '../../../../scripts/webpack/postcss.config.js' },
  31. },
  32. },
  33. {
  34. loader: 'sass-loader',
  35. options: {
  36. sourceMap: false,
  37. },
  38. },
  39. ],
  40. });
  41. config.module.rules.push({
  42. test: require.resolve('jquery'),
  43. use: [
  44. {
  45. loader: 'expose-loader',
  46. query: 'jQuery',
  47. },
  48. {
  49. loader: 'expose-loader',
  50. query: '$',
  51. },
  52. ],
  53. });
  54. config.resolve.extensions.push('.ts', '.tsx');
  55. return config;
  56. };