webpack.config.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const {resolve} = require('path')
  2. const HtmlWebpackPlugin = require('html-webpack-plugin')
  3. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
  4. const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
  5. //设置node环境变量
  6. process.env.NODE_ENV = 'development'
  7. //压缩css
  8. //optimize-css-assets-webpack-plugin
  9. module.exports = {
  10. entry: './src/js/index.js',
  11. output:{
  12. filename:'js/bulit.js',
  13. path: resolve(__dirname,'build')
  14. },
  15. module:{
  16. rules:[
  17. {
  18. test: /\.css$/,
  19. use: [
  20. //取代style-loader,提取js中css成单独文件
  21. MiniCssExtractPlugin.loader,
  22. // 创建style标签,将样式放入
  23. //'style-loader',
  24. // 将css文件整合到js中
  25. 'css-loader',
  26. {
  27. loader: 'postcss-loader',
  28. options: {
  29. // 旧版本配置
  30. /* ident: 'postcss',
  31. plugins: () => [
  32. require('postcss-preset-env')() //读取package.json里browserslist配置,默认加载根据node_env加载production
  33. ] */
  34. postcssOptions: {
  35. plugins: [
  36. [
  37. 'postcss-preset-env'
  38. ],
  39. ],
  40. }
  41. }
  42. }
  43. ]
  44. }
  45. ]
  46. },
  47. plugins:[
  48. new HtmlWebpackPlugin({
  49. template:'./src/index.html'
  50. }),
  51. new MiniCssExtractPlugin({
  52. filename:'css/built.css' //重命名
  53. }),
  54. new OptimizeCssAssetsWebpackPlugin()
  55. ],
  56. mode:'development',
  57. devServer:{
  58. contentBase:resolve(__dirname,'build'),
  59. compress:true,
  60. port:3000,
  61. open:true
  62. }
  63. }