webpack4.+的使用(二)(css、less、file-loader的使用)

webpack4.+的使用(二)(css、less、file-loader的使用)

一、css-loader的基本使用

1、进入项目目录,下载webpack,在cmd中输入npm i webpack -g下载webpack开发依赖,并在cmd中输入npm init --yes初始化package.json。

2、进入项目目录,在cmd中输入npm i css-loader style-loader -D下载处理样式时需要的loader,如下图:
在这里插入图片描述

3、创建entry.js、index.html、index.css、webpack.config.js文件,文件中的内容如下所示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>复习webpack</title>
	</head>
	<body>
        <!--index.html-->
		<script src="./bundle.js"></script>
	</body>
</html>

/*index.css*/
body{
	background: skyblue;//设置背景为天蓝色
}
//entry.js
import './index.css' //引用index.css
document.write("Hello! It's Review Project!");//entry.js
//webpack.config.js
module.exports = {
	//入口
	entry:{
		"entry":"./entry.js"
	},
	//出口
	output:{
		filename:"./bundle.js"
	},
	module:{
		rules:[
			{	
                //这里配置的是css-loader
				test:/\.css$/,// 正则表达式,指明要处理的文件类型
				use:['style-loader','css-loader']// 处理资源所使用的loader, 处理顺序为从右向左
			}
		]
	}
};

4、使用webpack命令webpack entry.js -o bundle.js重新编译项目,编译成功后,运行index.html,可看到页面背景色为天蓝色,如下图:
在这里插入图片描述
在这里插入图片描述

二、url-loader的基本使用

1、对文件的处理,webpack需要url-loaderfile-loader,在cmd中输入npm i url-loader file-loader -D下载处理图片文件的loader。

2、在index.html、entry.js、webpack.config.js中分别新增如下代码,并在当前目录中存放一张k.jpg的图片,如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>复习webpack</title>
	</head>
	<body>
		<div id="app"></div><!--新增的div-->
		<script src="./bundle.js"></script>
	</body>
</html>

import './index.css'
import imgSrc from './k.jpg'//引入当前目录的图片
import Vue from './vue.js';//引入当前目录的vue.js
document.write("Hello! It's Review Project!");
new Vue({
	el:'#app',
	template:'<div><img :src="imgSrc"/></div>',//vue模板的用法之一
	data(){
		return{
			imgSrc:imgSrc//返回当前的url,这样上面的模板才能直接调用
		}
	}
});
module.exports = {
	//入口
	entry:{
		"entry":"./entry.js"
	},
	//出口
	output:{
		filename:"./bundle.js"
	},
	module:{
		rules:[
			{
				test:/\.css$/,// 正则表达式,指明要处理的文件类型
				use:['style-loader','css-loader']// 处理资源所使用的loader, 处理顺序为从右向左
			},
			{
				test:/\.(jpg|png|jpeg|gif|svg)$/,//处理图片新增的代码
				loader:'url-loader'
			}
		]
	}
};

3、此时的目录结构如下图:
在这里插入图片描述
4、使用webpack命令webpack entry.js -o bundle.js重新编译项目,编译成功后,运行index.html,图片显示在了页面上(图片后面有天蓝色,是因为上面没有去掉body的颜色),如下图:
在这里插入图片描述

三、less-loader的基本使用

1、在cmd中输入命令npm i less less-loader -D下载处理.less文件的loader。

2、新增一个index.less文件,修改entry.js、webpack.config.js文件,如下:

//webpack.config.js文件
module.exports = {
	//入口
	entry:{
		"entry":"./entry.js"
	},
	//出口
	output:{
		filename:"./bundle.js"
	},
	module:{
		rules:[
			{
				test:/\.css$/,// 正则表达式,指明要处理的文件类型
				use:['style-loader','css-loader']// 处理资源所使用的loader, 处理顺序为从右向左
			},
			{
				test:/\.(jpg|png|jpeg|gif|svg)$/,//处理图片新增的
				loader:'url-loader'
			},
			{
				test:/\.less$/,
				loader:'style-loader!css-loader!less-loader'//处理.less文件新增的
			}
		]
	}
};
//entry.js  删除上面两步中的内容。只引入.less文件即可
import './index.less'
//新增.less文件,进行图片的导入
@imgPath:'./k.jpg';
body{
	background-image:url(@imgPath); 
}

3、使用webpack命令webpack entry.js -o bundle.js重新编译项目,编译成功后,运行index.html,图片显示在了页面上,如下图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: css-loader@2.1.1 npm ERR! Found: webpack@2.7.0 npm ERR! node_modules/webpack npm ERR! peer webpack@"2 || 3 || 4" from babel-loader@7.1.5 npm ERR! node_modules/babel-loader npm ERR! babel-loader@"^7.1.2" from vue-photo-preview@1.1.3 npm ERR! node_modules/vue-photo-preview npm ERR! vue-photo-preview@"^1.1.3" from the root project npm ERR! dev babel-loader@"^7.1.5" from the root project npm ERR! peer webpack@"^2.0.0 || ^3.0.0 || ^4.0.0" from file-loader@1.1.11 npm ERR! node_modules/file-loader npm ERR! file-loader@"^1.1.4" from vue-photo-preview@1.1.3 npm ERR! node_modules/vue-photo-preview npm ERR! vue-photo-preview@"^1.1.3" from the root project npm ERR! 5 more (less-loader, uglifyjs-webpack-plugin, ...) npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer webpack@"^4.0.0" from css-loader@2.1.1 npm ERR! node_modules/css-loader npm ERR! peer css-loader@"*" from vue-loader@15.10.1 npm ERR! node_modules/vue-loader npm ERR! dev vue-loader@"^15.9.5" from the root project npm ERR! dev css-loader@"^2.1.0" from the root project npm ERR! npm ERR! Conflicting peer dependency: webpack@4.46.0 npm ERR! node_modules/webpack npm ERR! peer webpack@"^4.0.0" from css-loader@2.1.1 npm ERR! node_modules/css-loader npm ERR! peer css-loader@"*" from vue-loader@15.10.1 npm ERR! node_modules/vue-loader npm ERR! dev vue-loader@"^15.9.5" from the root project npm ERR! dev css-loader@"^2.1.0" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
03-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值