webpack.common.config.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const path = require('path');
  2. module.exports = {
  3. entry: {
  4. index: './src/index.tsx',
  5. framework: ['react', 'react-dom'],
  6. },
  7. output: {
  8. filename: 'js/bundle.js',
  9. path: path.resolve(__dirname, '../dist'),
  10. },
  11. // devtool: 'source-map',
  12. devtool: 'cheap-module-eval-source-map',
  13. resolve: {
  14. // Add '.ts' and '.tsx' as resolvable extensions.
  15. extensions: ['.ts', '.tsx', '.js', '.json'],
  16. },
  17. module: {
  18. rules: [
  19. {
  20. test: /\.tsx?$/,
  21. loader: 'awesome-typescript-loader',
  22. },
  23. {
  24. test: /\.(js|jsx)$/,
  25. use: 'babel-loader',
  26. exclude: /node_modules/,
  27. },
  28. {
  29. test: /\.(png|jpe?g|gif|webp)(\?.*)?$/,
  30. use: [
  31. {
  32. loader: 'url-loader',
  33. options: {
  34. name: '[name].[ext]',
  35. outputPath: 'images/',
  36. limit: 4096,
  37. fallback: {
  38. loader: 'file-loader',
  39. options: {
  40. name: 'img/[name].[hash:8].[ext]',
  41. },
  42. },
  43. },
  44. },
  45. ],
  46. },
  47. {
  48. test: /\.(eot|ttf|svg|woff|woff2)$/,
  49. use: {
  50. loader: 'file-loader',
  51. options: {
  52. name: '[name]_[hash].[ext]',
  53. outputPath: 'font/',
  54. },
  55. },
  56. },
  57. // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
  58. /* {
  59. enforce: 'pre',
  60. test: /\.js$/,
  61. loader: 'source-map-loader',
  62. }, */
  63. ],
  64. },
  65. };