• webpack优化以及node版本


    最近做的这个项目webpack用的是1.X的版本,真的非常多的坑,然后最近在疯狂的做优化:

    事情的起因是每次我npm run dev的时侯都需要5分钟+,这个速度真的是难以忍受,然后就尝试去做项目的优化。

    首先引入了webpack-bundle-analyzer来分析项目的包大小,于是发现有些文件真的大到难以忍受。先讲下这个插件怎么用:

    1.先安装:

    我平时都喜欢用yarn add来安装确实比npm i 的速度快

    npm install --save-dev webpack-bundle-analyzer

    2.在webpack中配置:

    plugins: [
    new BundleAnalyzerPlugin(),
    ]
    

    3.在package.json的script中加入:

    "analyz": "NODE_ENV=production npm_config_report=true npm run build"  

    但是这里不能直接NODE_ENV,需要用到另一个插件:cross-env

    这里我就不赘述了,可以百度看下如何使用cross-env

    然后查看完自己的项目之后发现可以提取有些垃圾代码:

    这就是analyz之后的结果,发现好多页面都引入了: 

    import kn from 'knockout'
    

     其实项目的入口是在全局引入了knockout的,所以在每个页面引入的knockout是不必要的。

    优化之后:

    除此之外webpack还有一个优化神器,那就是:CommonsChunkPlugin

    CommonsChunkPlugin是一个选择加入功能,可以创建一个单独的文件(块),由多个入口点之间共享的公共模块组成。
    通过将通用模块与包分离,生成的块化文件最初可以加载一次,并存储在高速缓存中供以后使用。带来页面速度上的提升,浏览器将公共代码从缓存中取出来,不是每次访问一个新页面,再去加载一个更大的文件。
    基本配置如下:
    new webpack.optimize.CommonsChunkPlugin({
              name: "vendor"
            })

    最后,你发现你的npm run dev还是很慢的话,你可以考虑试着降低node的版本了,我降低版本之后发现速度差不多是<2分钟了,之前node是10的版本,后面node的版本降到了8就改善了

  • 相关阅读:
    Java泛型方法
    HashMap,LinkedHashMap和TreeMap的区别
    HashSet,TreeSet和LinkedHashSet的区别
    Java中Arrays.sort()和Collections.sort()
    Java基础面试集合
    面试:字符串中的相关试题
    Hadoop相关知识整理系列之一:HBase基本架构及原理
    Ubuntu 15.10环境下安装Hive
    机器学习相关知识整理系列之三:Boosting算法原理,GBDT&XGBoost
    机器学习相关知识整理系列之二:Bagging及随机森林
  • 原文地址:https://www.cnblogs.com/yuan233/p/10720882.html
Copyright © 2020-2023  润新知