加载css (npm install style-loader css-loader —save-dev)

  1. module.exports = {
  2. ...,
  3. module: {
  4. rules: [
  5. {
  6. test:/\.css$/i,
  7. use:['style-loader','css-loader']
  8. },
  9. ]
  10. }
  11. }

MiniCssExtractPlugin (npm install mini-css-extract-plugin —save-dev)

  1. module.exports = {
  2. plugins: [
  3. new MiniCssExtractPlugin({
  4. filename: "css/[name].css"
  5. })
  6. ]
  7. rules:[
  8. {
  9. test: /\.css$/i,
  10. use:[MiniCssExtractPlugin.loader, "css-loader"]
  11. }
  12. ]
  13. }

本插件会将 CSS 提取到单独的文件中,为每个包含 CSS 的 JS 文件创建一个 CSS 文件,并且支持 CSS 和 SourceMaps 的按需加载。

压缩css

  1. // 设置nodejs环境变量
  2. process.env.NODE_ENV = "development"
  3. module.exports = {
  4. entry: "./src/main.js",
  5. output:{//输出路径
  6. filename:'js/build.js',
  7. // __dirname nodejs的变量,代表当前文件的绝对路径
  8. path: path.resolve(__dirname,'dist')
  9. },
  10. module: {
  11. rules:[
  12. {
  13. test: /\.css/,
  14. use: [
  15. MiniCssExtractPlugin.loader,
  16. 'css-loader',
  17. {
  18. loader:'postcss-loader',
  19. options:{
  20. postcssOptions: {
  21. ident: 'postcss',
  22. plugins: [
  23. // postcss的插件
  24. require('postcss-preset-env')()
  25. ]
  26. }
  27. }
  28. }
  29. ]
  30. // css 兼容性处理 postcss
  31. // 下载 postcss-loader postcss-preset-env
  32. // "browserslist": {
  33. // 开发环境 --> 设置node的环境变量
  34. // "development":[
  35. // "last 1 chrome version",
  36. // "last 1 fiefox version",
  37. // "last 1 safari version"
  38. // ],
  39. // "production":[
  40. // ">0.2",
  41. // "not dead",
  42. // "not op_mini all"
  43. // ]
  44. // }
  45. }
  46. ]
  47. },
  48. // 压缩css
  49. optimization: {
  50. minimize: true,
  51. minimizer :[
  52. // 下载css-minimizer-webpack-plugin
  53. new CssMinimizerPlugin()
  54. ]
  55. },
  56. plugins:[
  57. new HtmlWebpackPlugin({
  58. template: "./src/index.html"
  59. }),
  60. // 提取css为单独的文件 下载 mini-css-extract-plugin
  61. new MiniCssExtractPlugin({
  62. filename: 'css/[name].css'
  63. })
  64. ],
  65. mode:'development'
  66. }