webpack.config.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. const webpack = require('webpack');
  2. const path = require('path');
  3. const ExtractTextPlugin = require("extract-text-webpack-plugin");
  4. const HtmlWebpackPlugin = require('html-webpack-plugin');
  5. let theme = {
  6. '@primary-color': '#58a3ff',
  7. '@link-color': '#58a3ff'
  8. };
  9. module.exports = {
  10. entry: {
  11. 'user/index': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  12. 'webpack/hot/only-dev-server',
  13. './js/user/index.js'
  14. ],
  15. 'user/login': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  16. 'webpack/hot/only-dev-server',
  17. './js/user/login.js'
  18. ],
  19. 'user/signIn': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  20. 'webpack/hot/only-dev-server',
  21. './js/user/signIn.js'
  22. ],
  23. //user-account
  24. 'user/account/index': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  25. 'webpack/hot/only-dev-server',
  26. './js/user/account/index.js'
  27. ],
  28. 'user/account/set': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  29. 'webpack/hot/only-dev-server',
  30. './js/user/account/set.js'
  31. ],
  32. 'user/account/services': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  33. 'webpack/hot/only-dev-server',
  34. './js/user/account/services.js'
  35. ],
  36. //admin
  37. 'admin/index': ['webpack-dev-server/client?http://0.0.0.0:80', // WebpackDevServer host and port
  38. 'webpack/hot/only-dev-server',
  39. './js/admin/index.js'
  40. ]
  41. //vendors: ['jquery','antd']
  42. //path.resolve(__dirname, './js/index.js'),
  43. },
  44. output: {
  45. path: path.resolve(__dirname, './build'),
  46. filename: '[name].js',
  47. },
  48. module: {
  49. loaders: [{
  50. test: /\.jsx?$/,
  51. exclude: /node_modules/,
  52. loader: 'babel-loader',
  53. query: {
  54. "presets": ["es2015", "react"],
  55. "plugins": [
  56. ["antd", {
  57. "style": true
  58. }]
  59. ]
  60. }
  61. //loaders: ['babel-loader?presets[]=es2015,presets[]=react']
  62. },
  63. //{
  64. //test: /\.module\.less$/,
  65. //loader: 'style!css!less?{"modifyVars":{"@primary-color": "#1DA57A"}}'
  66. //},
  67. {
  68. test: /\.css$/,
  69. loader: 'style!css'
  70. }, {
  71. test: /\.less$/,
  72. loader: `style!css!less?{"modifyVars":${JSON.stringify(theme)}}`
  73. }, {
  74. test: /\.(png|jpg)$/,
  75. loader: 'url?limit=8192&name=[path][name].[ext]'
  76. }
  77. //{test: /\.(png|jpg)$/, loader: 'file' }
  78. ]
  79. },
  80. resolve: {
  81. extensions: ['', '.js', '.jsx']
  82. },
  83. plugins: [
  84. new ExtractTextPlugin('[name].bundle.css', {
  85. allChunks: true
  86. }),
  87. //user
  88. new HtmlWebpackPlugin({
  89. title: '用户首页',
  90. filename: 'user/index.html',
  91. template: './template/template.html',
  92. chunks:['user/index','vendors']
  93. }),
  94. new HtmlWebpackPlugin({
  95. title: '用户登录',
  96. filename: 'user/login.html',
  97. template: './template/template.html',
  98. chunks:['user/login','vendors']
  99. }),
  100. new HtmlWebpackPlugin({
  101. title: '用户注册',
  102. filename: 'user/signIn.html',
  103. template: './template/template.html',
  104. chunks:['user/signIn','vendors']
  105. }),
  106. //user-account
  107. new HtmlWebpackPlugin({
  108. title: '用户中心-首页',
  109. filename: 'user/account/index.html',
  110. template: './template/template.html',
  111. chunks:['user/account/index','vendors']
  112. }),
  113. new HtmlWebpackPlugin({
  114. title: '用户中心-设置',
  115. filename: 'user/account/set.html',
  116. template: './template/template.html',
  117. chunks:['user/account/set','vendors']
  118. }),
  119. new HtmlWebpackPlugin({
  120. title: '用户中心-科技服务',
  121. filename: 'user/account/services.html',
  122. template: './template/template.html',
  123. chunks:['user/account/services','vendors']
  124. }),
  125. //admin
  126. new HtmlWebpackPlugin({
  127. title: 'admin_index',
  128. filename: 'admin/index.html',
  129. template: './template/template.html',
  130. chunks:['admin/index','vendors']
  131. })
  132. //这个使用uglifyJs压缩你的js代码
  133. //new webpack.optimize.UglifyJsPlugin({minimize: true}),
  134. //把入口文件里面的数组打包成verdors.js
  135. //new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js'),
  136. ]
  137. };