webpack.config.js 2.7 KB

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