src内容与1一致

    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. // 设置nodejs环境变量
    6. process.env.NODE_ENV = 'development';
    7. module.exports = {
    8. entry: './src/js/index.js',
    9. output: {
    10. filename: 'js/built.js',
    11. path: resolve(__dirname, 'build')
    12. },
    13. module: {
    14. rules: [
    15. {
    16. test: /\.css$/,
    17. use: [
    18. MiniCssExtractPlugin.loader,
    19. 'css-loader',
    20. /*
    21. css兼容性处理:postcss --> postcss-loader postcss-preset-env
    22. 帮postcss找到package.json中browserslist里面的配置,通过配置加载指定的css兼容性样式
    23. "browserslist": {
    24. // 开发环境 --> 设置node环境变量:process.env.NODE_ENV = development
    25. "development": [
    26. "last 1 chrome version",
    27. "last 1 firefox version",
    28. "last 1 safari version"
    29. ],
    30. // 生产环境:默认是看生产环境
    31. "production": [
    32. ">0.2%",
    33. "not dead",
    34. "not op_mini all"
    35. ]
    36. }
    37. */
    38. // 使用loader的默认配置
    39. // 'postcss-loader',
    40. // 修改loader的配置
    41. {
    42. loader: 'postcss-loader',
    43. options: {
    44. ident: 'postcss',
    45. plugins: () => [
    46. // postcss的插件
    47. require('postcss-preset-env')()
    48. ]
    49. }
    50. }
    51. ]
    52. }
    53. ]
    54. },
    55. plugins: [
    56. new HtmlWebpackPlugin({
    57. template: './src/index.html'
    58. }),
    59. new MiniCssExtractPlugin({
    60. filename: 'css/built.css'
    61. }),
    62. // 压缩css
    63. new OptimizeCssAssetsWebpackPlugin()
    64. ],
    65. mode: process.env.NODE_ENV
    66. };