webpack4.0(四) --css样式及图片打包(style-loader,css-loader)

一、CSS样式打包                    

1. loader简介

由于Webpack打包入口目前只配置了一个index.js文件,那么其他需要被打包的文件都必须通过模块化方式引入该文件才行,而默认情况下,引入的文件必须是js文件(如项目里添加的index.js)。

那么其他文件类型该如何进行打包呢?这时我们就要用到webpack中所提供的各种loader,它就是专门用于处理除JS文件之外的其他格式文件的编译、提取、合并、打包等。

其中CSS文件的打包需要用到style-loader和css-loader这两个依赖包,style-loader用于将打包后的css代码<style>标签形式添加到页面头部,css-loader用于加载css文件。

2、安装

npm i css-loader style-loader -D

3、配置webpack.conf.js

 1     //jpg,gif,png,css....所以文件都需要单独的loader
 2     //通过loader加载文件 转换未webpack能够识别的moudle
 3     //模块对象
 4     module:{
 5          // 规则
 6         rules:[
 7             {
 8                 // 正则匹配所有以.css结尾的文件
 9                 test:/.css$/,
10                  // 使用css-loader和style-loader依次对css文件进行处理
11                 // 按照数组中从后往前的顺序
12                 use:[devMode?‘style-loader‘,‘css-loader‘,]
13             },
14
15         ]
16     },

4、html文件和style.css

第一步:src目录中编辑index.html

第二步:手动在src目录建style.css文件再编辑

编辑

第三步:在src目录index,js中引入style.css

5、运行

1 运行自己自定义的脚本命令,然后自动打开了网页
2 npm run dev

可以看到自己刚刚编写的html和css样式

如果要重新修改样式等的东西,只需要到css文件里修改在点击保存  热更新自动更新(不需要重新打包)

 二、图片打包                        

  图片打包关键要用到file-loaderurl-loader,其中url-loaderfile-loader功能基本一致,只不过url-loader能将小于某个大小的图片进行base64格式的转化处理。

1、CSS中写图片

  我现在在src目录下新增一个images文件夹,再在images中添加一张图片“ccc.png”。然后我在style.css中添加以下代码:

  

  这样直接打包,肯定是会报错的 下图写着图片不能被解析,我们需要用一个装一个loader插件,来处理图片的解析。

   

2、安装  

npm i file-loader -D

 3、配置webpack.conf.js

1 {
2                 test:/\.(jpg|png|jpeg|gif)$/,
3                 use:[‘file-loader‘],//其实对于只有单个loader的,可以将其简化loader:‘file-loader‘,
4                 options:{
5                     //name属性其实就是图片打包后的路径,其中包括图片名([name])和图片格式([ext])。
6                     name:‘./images/[name].[hash].[ext]‘
7                 }
8
9             },

 

4、运行

npm run build   dist目录下会打包一个images文件夹

npm run dev :

这样图片已经成功写进网页里了。

总结                            

 当我们配置watch为true进行打包后,Webpack会一直处于监听状态,然而当更改webpack.config.js后我们仍需要重新进行打包操作,这时我们只需在控制台简单的按下Ctrl+C后根据提示输入字母y回车确定即可成功退出监听状态。

 loader解决了在打包过程中打包图片,样式,视频,音频等无法解析的问题,进一步解决了我们的问题。 

原文地址:https://www.cnblogs.com/xym0996/p/12040435.html

时间: 2024-08-30 00:31:35

webpack4.0(四) --css样式及图片打包(style-loader,css-loader)的相关文章

IIS发布,无法显示CSS样式和图片

在BS的项目中,完成之后,都需要发布自己的网站.这个时候就要安装IIS了. 我也是最近才打算使用IIS来进行发布的.刚把IIS安装上,就遇到了问题. 出现问题就想办法解决问题呗.遇到的问题和视频里面的类似,他也讲了一下是如何解决的.不过,他的只是不显示图片.而我的是 图片和CSS样式都显示.错误的原因:路径与发布不一致. 检查了一下自己的代码,路径写错?这也不至于全写错吧. 打开自己发布前的vs程序,执行一下:没问题.如果是路径错了,在vs程序中检查,也应该不显示才对? 既然程序没问题,发布也没

快速记住CSS样式属性单词及输入HTML+CSS的方法

快速记住CSS样式属性单词及输入HTML+CSS的方法,DIVCSS5介绍一种快速输入HTML代码.快速输入CSS样式英文单词与样式值输入方法.降低英文单词代码输入错误概率,提升输入代码速度.DW软件输入CSS和HTML的终极用法(非面板输入法). DIVCSS5教大家一种快速记住CSS样式属性单词及用法的方法,告别死记硬背才是硬道理. CSS样式布局中使用的CSS样式英文单词,不需要死记硬背,会使用认识,知道长什么样即可.在DIV CSS布局开发中对于是否会拼写CSS属性单词关系不大,会使用.

用JS查看修改CSS样式(cssText,attribute(&#39;style&#39;),currentStyle,getComputedStyle)

CSS样式定义方法 大家都知道,在为HTML设置样式的时候,通常有三种方法:内联样式,内部样式表,外部样式表. 1.内联样式: 内联样式表就是在HTML元素中的行内直接添加style属性. 1 <div id="div1" style="width: 100px; height: 100px; background: black"> 2 </div> 2.内部.外部样式表: 内部样式表就是在<head>头部里有<style&

ASP.NET重写Render 加载CSS样式文件和JS文件(切换CSS换皮肤)

网页换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里.那么切换CSS其实就是更换html里的link href路径.我在网上搜索了下. 一般有两种方式: 1.页面放一个Holder控件.然后用编程方式把当前用户的风格css link写入页面. 2.过反射机制,逐个控件设置css样式. 上面两种方式都挺麻烦的,第一种需要在每个页面上放一个holder控件,类似的做法还有把link标签加runat=server的做法,页面多了,都比较麻烦.第二种不用考虑了,性能

HTML引入CSS样式三种方法及优先级 CSS样式的写法

HTML引入CSS样式三种方法及优先级: 方法 css的样式引用由3种方式.分别为行内样式.内部样式(嵌入式)和外部样式: 行内样式:                  在对象的标记内使用对象的style属性定义适用的样式表属性,格式定义为 :<div style="内容"><div>: 内部样式(嵌入式):是由<style></style>标记对放在<head></head>中: 外部样式 :          

对于用js获取元素的css样式属性(getComputedStyle,currentStyle,style)(getPropertyValue,getAttribute)

首先单独拎出来讲的是style style: nodeObject.style.cssProperty获取的是DOM节点上 style 属性定义的样式,如果不存在 style 属性,或者 style 属性没有定义相应的样式,则是无法获取的.也就是说,JavaScript 不会到 <style> 标签或者 CSS 文件去获取相应的样式,只能获取 style 属性定义的样式. 就是外部样式表,内部样式表,用style都是无效的,只有内联样式是有效的,当然用style写入也是写入在内联样式的. 然后

Bootstrap--全局css样式之图片

好久没有更新博客了,在这里跟大家分享一下生活的小乐趣,作为程序员,整天对着电脑是很不爽的,加班也是常有的,所以连续工作对身体是很不爽的,而且随着年龄的增加,程序员身体状况会越来越差,还是建议大家要常去锻炼下身体,拉伸下颈椎和肩部,等你去了,你会发现很爽的 (1)图片 在 Bootstrap 版本 3 中,通过为图片添加 .img-responsive 类可以让图片支持响应式布局.其实质是为图片设置了 max-width: 100%;. height: auto; 和 display: block

css样式设置图片半透明度,兼容IE8,火狐

关于背景颜色透明的兼容浏览器的问题,一直是个问题,我所写的兼容IE8,和火狐,说是兼容所有浏览器我就没有测试,有兴趣的朋友可以自己测试下吧. background-color:white;filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5; background-color:white;

如何让后加载的元素被一开始就有的css样式渲染成功(强制提升css优先级)

今天在做搜索框中的提示语下拉的时候,提示框把搜索框的底部的border遮住,导致看起来不是很美观: 因为下方的提示框是用js后加载的它的样式也是随着js一起加载的,而这个js和它的css我们是不能改动的.如果直接一开始就使用css设置,卸载首页的css文件中,当focus输入框的时候,输入框的css是后加载进来以及渲染的,以至于我们看到的结果是一开始写在首页css文件中的样式被后面加载的样式覆盖了: 方案一:使用js定时器,当focus后延时一会儿大概255ms左右,再来渲染提示框的上边框颜色,