Webpack 1.0.2

245 阅读3分钟

Webpack - loader

webpack 1.0.1 juejin.cn/post/684490…

完成webpack1.0.1的配置及操作,就会清楚什么是webpack,什么是模块化开发的概念。通过简单的配置就可以完成打包js文件。而在实际开发中,只完成js文件的打包是远远不够的,你的工程中会使用图片,.svg,.vue,.jsx,预处理语言等各种类型格式的文件。这时需要用到node的loader模块。在webpack定义中,loader导出函数并在转换源模块时调用该函数,最终转换成浏览器识别的通用文件。

webpack loader 中文网站www.webpackjs.com/loaders/

在webpack中文官网推荐的loader有很多,这时配置loader就看具体的业务场景,根据业务场景的不同配置不同的loader。

具体loader配置如下:


module         //  当不单纯是打包js文件时,webpack就会在module对象中去查找相应的打包配置

rules            //  规则,数组形式。包含的对象就是具体文件类型和使用相应的loader

test             //  文件类型,正则表达式。

use              //  使用loader

在终端输入  npm install file-loader -D  下载file-loader  ⚠️ -D 等价于 --save -dev

这样最基本的处理图片的loader就配置成功了。

Webpack - 静态资源图片

打包完成图片后,你会发现打包图片的名称是字符串形式的出现的,如果想要修改图片名称或者保持原有图片名称,可以在use中去配置options属性来实现自己想要的打包效果。


name:'[name].[ext]'       //  保持原有的名称,.[ext]占位符。[hash]占位符,hash字符串,也就是这个图片的字符串。

outputPath                     //  输出路径,在dist文件夹下生成 images 文件夹并把图片放入其中。

⚠️有一个loader与 file-loader 十分相似,就是 url-loader 。

终端输入  npm install url-loader -D


当终端运行 npm run bundle 后,dist文件并没有输出images文件夹和图片文件,但是图片仍然被打包,这是因为url-loader会把图片打包成base64位的图片到js文件中。但是这种打包方式就会带来一个性能优化的问题,如果图片很小,小于2KB,对于前端性能优化喜闻乐见的是使用base64位图片,这样就会减少一次ajax请求。但是如果图片过大,打包进js文件中,js文件就会过大,导致加载js文件时间过长,用户体验效果差。而url-loader的开发者已经帮助我们解决了这个问题。再次配置ulr-loader的options。


limit                                   //  小于2KB就会打包成base64位的图片,反之会把图片打包移植到images文件夹下。


至此,webpack静态资源图片的loader配置就结束了。