• webpack生产环境配置(3)


    提取css成单独文件

    https://github.com/webpack-contrib/mini-css-extract-plugin

    默认情况下css会打包到js中,如果css代码过多会导致js文件过大;并且在页面加载时是先加载JS,再创建style标签引入css样式,导致页面会出现"闪屏"现象。如果有一种可以将css从js代码中提取出来,这样就可以减小文件的体积。


    步骤:

    1. 创建src目录,用于存放源码
    2. 创建css/index.csssrc/index.js文件,并在index.js文件中引入css。webpack在分析有依赖的资源才会加入打包文件中
    3. 创建index.html。使用html-webpack-plugin插件自动引入打包生成的资源,查看效果
    4. webpack配置
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    module.exports = {
      plugins:[
        new MiniCssExtractPlugin({
          // 对输出的css文件进行重命名
          filename: 'css/built.css'
        })
      ],
    	module:{
        rules:[
          {
            test:/.css$/,
            use:[
              // 取代style-loader。作用:提取js中的css成单独文件
              MiniCssExtractPlugin.loader,
              'css-loader'
            ]
          }
        ]
      }
    }
    
    1. 安装开发依赖
    npm i mini-css-extract-plugin@0.9.0 -D
    
    1. 打包
    webpack
    

    总结:mini-css插件是通过link标签引入,而不是通过style标签引入,不会出现闪屏现象;

    CSS压缩

    https://www.npmjs.com/package/optimize-css-assets-webpack-plugin

    步骤:

    1. 安装开发时依赖
    npm i optimize-css-assets-webpack-plugin@5.0.3 -D
    
    1. webpack配置
    const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
    module.exports = {
    	plugins:[
        new OptimizeCssAssetsWebpackPlugin()
      ]
    }
    
    1. 打包
    webpack
    

    JS语法检查

    Airbnb,团队合作时进行代码的规范

    https://github.com/airbnb/javascript

    步骤:

    1. 安装开发时依赖
    npm i eslint-loader@3.0.3  eslint@6.8.0  eslint-config-airbnb-base@14.0.0  eslint-plugin-import@2.20.1 -D
    
    1. webpack.config.js配置
    module.exports = {
      module:{
        rules:[
          {
            test: /.js$/,
            exclude: /node_modules/,
            loader: 'eslint-loader',
            options: {
              // 自动修复eslint的错误
              fix: true
            }
          }
        ]
      }
    }
    
    1. package.json中设置检查规则
    {
      "eslintConfig": {
        "extends": "airbnb-base"
      }
    }
    
    1. 在入口文件中编写js不符合规范的代码进行测试
    var a = 10;
    
    console.log('hello');
    
    1. 打包测试

    注意:

    • 默认情况下Airbnb遇到console.log(xx)也会报出警告,如果想要忽略警告的话则需在输出的前一行添加// eslint-disable-next-line
  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/it774274680/p/15118264.html
Copyright © 2020-2023  润新知