最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • webpack 配置进阶知识

    正文概述 掘金(好记性不如烂笔头)   2021-08-06   555

    提取css成单独文件

    • 原因

    不提取css文件,打包时会放在js文件中,不仅会增加js文件体积,使js文件下载时间延长,而且进行解析js文件往往都是在dom树生成之后,就增加了延迟,影响渲染速度,用户体验差

    • 好处

    将css文件单独提取出来,就可以先在页面的最前面引入这个单独的css文件,浏览器先解析css文件就会生成cssom从而与domtree生成渲染树,从而以最快速度渲染出页面。

    安装:npm i mini-css-exreact-plugin -D
    
    配置:
    
    module.exports ={
      ...
      module:{
         rules:[
        {
        test:/\.css$/,
        use:[
           // style-loader //创建style标签到head上但是要分离css时候不适用
           MiniCssExtractPlugin.loader, //使用插件特有的loader提取js中的css成为单独的文件
           'css-loader'
        ]
        }
      ]
      }
      plugins:{
         new MiniCssExtractPlugin({
           // 对输出的css重命名
           template:'./src/built.css'
         })
      }
      
    }
    

    css兼容性处理

    • 原因:

    系统需要兼容多个浏览器,就会在css文件添加-webkit-等厂商前缀。由于webpack无法识别这些前缀,所以引入postcss-loader,这个可以自动帮我们添加厂商前缀的信息。

    安装:npm install postcss-loader postcss-preset-env -D
    module.exports = {
       ...
       module:{
          rules:[
             {
               test:/\.css$/,
               use:[
                  MiniCssExtractPlugin.loader,
                  'css-loader',
                  
                  {
                  loader:'postcss-loader',
                  options:{
                    ident:'postcss',
                    plugins:() =>[
                    // postcss的插件,帮助postcss找到package.json中的browserslist里面的配置,通过配置加载指定的css兼容
                      require('postcss-preset-env')()
                    ]
                  }
                  }
               ]
             }
          ]
       }
    }
    
    
    package.json中的配置
    {
      "browserslist":{
      // 开发环境 ,需要设置nodejs环境变量
          "development":[
              "last 1 chrome version",//最近的chrome浏览器版本
          ],
          // 生产环境(默认的)
          "production":[
              ">0.2%",
              "not dead",
              "not op_mimi all"
          ]
          
      }
    }
    

    js语法检查eslint

    安装:npm i eslint-config-airbnb-base eslint-plugin-import eslint -D
    配置:
    module.exports = {
       ...
       module:{
          rules:[
          /*
          js语法检查eslint
          */
             {
                 test:/\.js$/,
                 exclude:/node_modules/,  // 不检查第三方库
                 loader:'eslint-loader',
                 options:{
                   // 自动修复eslint的错误
                   fix:true
                 }
             },
             /*
             js兼容性处理: babel-loader  @babel/core @babel-preset-env
             1:@babel-preset-env,只能处理部分兼容性问题
             2:全部的兼容性处理,需要下载@babel/polyfill
             3:按需加载,做兼容性处理---》core-js
             */
             {
               test:/\.js$/,
               exclude:/node_modules/,
               loader:'babel-loader',
               options:{
                  // 预设:指示babel做怎么样的兼容处理
                  presets:['@babel/preset-env']
               }
             }
           ]
        }
    }
    
    
    package.json中eslintConfig中配置
    "eslintConfig":{
      "extends":"airbnb-base"
    }
    

    下载网 » webpack 配置进阶知识

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元