【Webpack|青训营笔记】

24 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13天。以下是我在观看学习视频的同时进行的笔记记录,今天学习了好多新知识,感觉好充实!同时也希望大佬们进行补充和改正,大家一起加油努力呀!

Webpack是什么

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

LOADER

Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。

所以如果我们需要在应用中添加 css 文件,就需要使用到 css-loader 和 style-loader,他们做两件不同的事情,css-loader 会遍历 CSS 文件,然后找到 url() 表达式然后处理他们,style-loader 会把原来的 CSS 代码插入页面中的一个 style 标签中。

Webpack与hash算法

hash,中文译作哈希或散列。接触过数据结构与算法的话,会了解一点hash算法。

我们在这里不做过多讲解,只讲一下Webpack里hash算法是怎么一回事。

在使用Webpack对构建的时候,Webpack会根据所有的文件内容计算出一个特殊的字符串。只要有文件的内容变化了,Webpack就会计算出一个新的特殊字符串。

Webpack在根据文件内容计算出一个特殊字符串的时候,使用的就是hash算法,这个特殊字符串一般叫做hash值。

我们一般取计算出的特殊字符串的前八位作为文件名的一部分,因为hash算法计算出的前八位基本可以保证唯一性了。

在Webpack里,我们通常用[hash:8]这种形式表示取hash值的前八位,例如在Webpack配置文件中,我们用 filename: 'jQuery-[hash:8].js'。