webpack.config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. const path = require('path');
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');
  3. const htmlPlugin = new HtmlWebpackPlugin({
  4. template: './src/index.html',
  5. filename: './index.html'
  6. });
  7. module.exports = {
  8. entry: './src/index.jsx',
  9. resolve: {
  10. alias: {
  11. page: path.resolve(__dirname, 'src/page'),
  12. component: path.resolve(__dirname, 'src/component')
  13. }
  14. },
  15. module: {
  16. rules: [
  17. {
  18. test: /\.(js|jsx)$/,
  19. exclude: /node_module/,
  20. use: {
  21. loader: 'babel-loader',
  22. options: {
  23. presets: ['react', 'env'],
  24. cacheDirectory: true,
  25. plugins: [['import', { libraryName: 'antd', libraryDirectory: 'es', style: 'css' }]]
  26. }
  27. }
  28. },
  29. {
  30. test: /\.css$/,
  31. loader: 'style-loader!css-loader'
  32. },
  33. {
  34. test: /\.(eot|woff|woff2|ttf)/,
  35. loader: 'url-loader?limit=30000&name=fonts/[hash:8].[name].[ext]'
  36. },
  37. // {
  38. // test: /\.css$/,
  39. // exclude: /node_module/,
  40. // use: [
  41. // {
  42. // loader: 'style-loader'
  43. // },
  44. // {
  45. // loader: 'css-loader',
  46. // options: {
  47. // modules: true,
  48. // importLoaders: 1,
  49. // sourceMap: true,
  50. // localIdentName: '[path][name]__[local]--[hash:base64:5]'
  51. // }
  52. // }
  53. // ]
  54. // },
  55. {
  56. test: /\.scss$/,
  57. use: [
  58. {
  59. loader: 'style-loader'
  60. },
  61. {
  62. loader: 'css-loader'
  63. },
  64. {
  65. loader: 'sass-loader'
  66. },
  67. {
  68. loader: 'sass-resources-loader',
  69. options: {
  70. resources: './src/style/resources.scss'
  71. }
  72. }
  73. ]
  74. }
  75. ]
  76. },
  77. plugins: [htmlPlugin]
  78. };