• 04 webpack4.0学习笔记——配置文件_url-loader使用


    概述

            在介绍完配置文件中的入口和出口基本操作流程后,接下来我们介绍loader的基本使用,本文主要介绍url-loader的使用流程。

            loader 用于对模块的源代码进行转换。loader 可以使你在 import 或"加载"模块时预处理文件。因此,loader 类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的强大方法。loader 可以将文件从不同的语言(如 TypeScript)转换为 JavaScript,或将内联图像转换为 data URL。loader 甚至允许你直接在 JavaScript 模块中 import CSS文件!

            url-loader 功能类似于 file-loader,但是在文件大小(单位 byte)低于指定的限制时,可以返回一个 DataURL。

    具体操作步骤

            1、新建文件夹,然后新建“webpack.config.js”配置文件,里面除了前几篇文章中我们介绍过的入口出口配置代码之外,添加loader的配置代码,本文我们使用的loader是url-loader,所以加入如下代码:

    const path=require('path');
    
    module.exports={
    	entry:'./input.js',
    	output:{
    		path:path.resolve(__dirname,'dist'),
    		filename:'output.bundle.js'
    	},
    	mode:'development',
    	module:{
    		rules:[
    			{
    				test:/.(png|jpg|gif)$/i,
    				use:[
    					{
    						loader:'url-loader',
    						options:{
    							limit:8192
    						}
    					}
    				]
    			}
    		]
    	}
    };

            上述代码可看出,其实我们就新增了module这个属性。此属性中的rules字段下包含两个字段:test和use。test的含义是根据一个正则表达式去匹配相应的文件,在此处匹配jpg、png、gif格式的图片;use的含义是对于上述匹配的文件,指定要使用的loader,此处使用的是url-loader,并且此属性也提供了一个options字段,意思是在8192字节(大约8k)以内的文件使用url-loader,超过此大小的文件将不使用此loader。

            2、根据配置文件,在目录下新建“input.js”入口文件,和img目录,并且在img目录里面随便放置两张图片,然后编写input.js的代码:

    const good='hello'; 
    
    import img1 from './img/01.png'; 
    import img2 from './img/02.jpg';

            上述代码加载了img目录下的两张图片。此处我们主要是学习url-loader的使用,所以不编写其他逻辑代码,仅仅加载图片即可。到此为止,我们的文件目录如下所示:

           3、在目录下运行命令行工具,并进行文件打包(通过“webpack”命令),如图:

            如上图所示,当我们运行“webpack”命令时会报错,提示没有安装url-loader,所以接下来我们进行安装。

            4、在安装之前呢,先要通过命令“npm init -y”来生成一个package.json文件,然后通过命令“npm install url-loader --save-dev”来安装url-loader,如图:

            安装完成后我们在package.json文件中可看到安装的插件及版本号,如下图:

           5、安装后我们再执行webpack来进行打包,如图:

            如上图所示,安装url-loader后再执行打包,又报错说没有找到file-loader,那我们继续安装此插件,通过“npm install file-loader --save-dev”命令,如图:

            6、安装file-loader后再继续打包,如图:

           此时可以看到打包成功,在目录下生成了一个“dist”文件夹,里面是一份js输出文件和两张图片,如图:

            但是,这两张图片的大小和img目录下的两张图片大小一样,并没有打包,这是为什么呢?原因就是跟我们在配置文件中设置的limit这个属性值有关,我们设置的是8k以内才会使用url-loader,但是这两张图片大小基本都是800k左右,所以我们更改limit的值,如下:

            我们再次执行打包,结果如下:

            这次打包后并没有再看到图片,仅仅是一份js文件,那就说明我们url-loader试用成功,并且文件打包成功,此结果文件大小跟上次生成的结果相比也是变得比较大。

            有些小伙伴如果打包后的js文件大小变大了,但是还有两张图片的话那就说明在打包前并没有删除dist文件夹哦,我们在打包前记得删除dist文件夹,再执行打包命令。

    总结

            本文主要介绍loader的使用方法,主要介绍了url-loader的基本使用,在使用过程中会出现报错信息,我们也提供了解决方法,在我们以后使用loader这些插件时经常会出现某些插件缺失这种情况,像在本文中一样,我们要学会安装解决此类问题。

  • 相关阅读:
    数据库被注入daxia123原因及解决办法
    Alipay数字证书管理员权限问题
    关闭数据库的xp_cmdshell命令以防止黑客攻击
    如何使用JavaScript来写ASP程序
    VBscript操作DOM
    如何做好性能压测丨压测环境设计和搭建
    10倍性能提升!DLA SQL推出基于Alluxio的数据湖分析加速功能
    高德地图驾车导航内存优化原理与实战
    「直播实录」中英数据库专家谈:数据库的过去、未来和现在
    Flink 助力美团数仓增量生产
  • 原文地址:https://www.cnblogs.com/xuqw/p/11794601.html
Copyright © 2020-2023  润新知