0571-88730320

【web优化】Web包卷优化

【web优化】Web包卷优化

发布时间:2020-03-23 09:00:00

从Web Pack文件的角度来看,主要的应用程序有entry、output、resolve、module和plugins。除了指定输出位置外,output还具有一些散列和块配...

如果您有类似需求请致电

17742004931 , 0571-88730320

从Web Pack文件的角度来看,主要的应用程序有entry、output、resolve、module和plugins。

除了指定输出位置外,output还具有一些散列和块配置。哈希是随机生成的,每次都会更改。这里的分块是指由webback划分的代码块。在编译期间,webback将解析内容并通过内容生成块散列。Chunkhash与hash相比是相对恒定的。我们还使用它来进行浏览器缓存。在这里,webpack提供了hash生成算法、chunkhash失败时间等配置,我们一般不会使用。

主要使用的是path、publicpath、filename、chunkfilenamepath,它是指在完成webpack构建之后的输出地址。Publicpath是指资源的访问地址。file name是指生成的文件名chunkfilename,它不是条目文件名。

样式:样式加载器、CSS加载器、less加载器、sass加载器等文件:raw加载器、文件加载器、URL加载器、JSON加载器等编译器:Babel加载器、coffee加载器、TS加载器等验证测试:Mocha加载器、jshint加载器、eslint加载器等。

使用插件webpack bundle analyzer进行分析。

npmiwebpack bundle analyzer—保存

这个插件在使用后将打开一个web页面,通常是localhost:8888,可以对其进行配置。通过图像显示,我们打包了每个文件的组成、每个部分的体积、总体积等信息。

有关详细配置,您可以查看NPM上面的文档。这里我还使用了NPM的case配置。

注:我认为优化应该基于我对项目的熟悉程度,否则我可能无法开始。

npminstallbabel插件lodashlodash网页包插件——保存

npmibundle加载程序--保存

CDN优化依赖于包管理器bower

鲍尔是一个非常老的前端包经理。虽然它被称为包管理器,但它只提供简单的下载和录制功能。

目前,鲍尔已宣布终止开发,前端模块管理已转移到新产品管理。

在这里,npm3被称为JavaScript的包管理器,而不仅仅是node的包管理器。)

鲍尔的命令类似于NPM的命令。以下是一些常见的命令:

通过bower-webback插件,我们可以连接webback和bower。

npmipower网页包插件--保存

实际上,他在这里所做的与resolve的alise类似,也就是说,他在需要/通过插件导入bower包时指定地址和文件。

其配置如下:

bower封装的引入与普通NPM封装相同。通过导入或需求分析,发现需求的效果较好,而需求坑较小。

升级到webpack2后,我们发现不再支持此插件。相反,我们改为bower resolve webpack plugin。它的配置引用GitHub文档。我们发现只有JS文件可以被加载和丢弃!但是您可以从中学习编写插件

Bootstrap loader用于解决引导加载问题。建议在webpack中引入引导加载程序。经过测试,发现bootstrap占用了近150kb的空间。记录供应商占用544KB的应用程序和158kb的应用程序

安装npminstallbootstrap加载程序--savenpminstallbootstrap sass--savenpminstallcss loadernode sassre解决方案URL loadersass style loaderrl loader--save

加载要求('bootstrap loader')

有关详细信息,请参见如何使用webpack打包引导

另一种方法是通过bower引入,但是bower中bootstrap给出的条目文件较少,无法解决。您只能将less修改为CSS。这样,bootstrap将分别占用不到50kbvendor、390kbapp和190kb

Node的导入语法允许我们只引入我们需要的方法,这对JS的内存消耗是一个很大的改进。同时,这个特性也被应用到Web包的打包中,只对我们介绍的方法进行打包。然而,这一点和Babel转码之间会有冲突。具体原因如下:

为了利用webpack2的这一特性,我们需要做一些配置。经过测试,我发现这个功能可以减少的包容量几乎可以忽略不计。

联系我们,谈您的需求

立即咨询