Webpack通过loader打包非js模块

本文详细介绍了如何使用Webpack配置loader处理非js文件,包括css、scss、less、图片、字体、高级语法以及vue单文件组件的打包。通过安装并配置对应的loader,如style-loader、css-loader、sass-loader、postcss-loader、url-loader、file-loader、babel-loader等,实现了对不同文件类型的打包支持,确保项目中各种资源文件能正确引入和兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际开发过程中,webpack默认只能打包处理.js文件,非,js文件,需要调用loader加载器才可以正常打包。

loader加载器可以协助webpack打包处理特定文件模块

– css文件打包处理

  1. 运行npm i style-loader css-loader -D,安装相关插件。
  2. 在webpack.config.js文件中module中rules数组中,添加如下配置:
module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//打包处理css文件
			{test:/\.css$/,use:['style-loader','css-loader']},
		]
	}
}

test -->配置的文件类型
use–>调用的loader

  • use数组中指定loader顺序是固定的
  • 调用顺序是从后往前调用

– scss文件打包处理

  1. 运行npm i sass-loader node-sass -D,安装相关插件。
  2. 在webpack.config.js文件中module中rules数组中,添加如下配置:
module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//打包处理scss文件
			{test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}
		]
	}
}

– less文件打包处理

  1. 运行npm i less-loader less -D,安装相关插件。
  2. 在webpack.config.js文件中module中rules数组中,添加如下配置:
module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//打包处理less文件
			{test:/\.less$/,use:['style-loader','css-loader','less-loader']},
		]
	}
}

– 自动添加css浏览器兼容前缀

  1. 运行npm i postcss-loader autoprefixer -D,安装相关插件。
  2. 在根目录中创建postcss配置文件postcss.config.js
const autoprefixer=require('autoprefixer')//导入添加兼容前缀的插件

module.exports={
  plugins:[autoprefixer]//挂在插件
}
  1. 在webpack.config.js文件中module中rules数组中,添加如下配置:
module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//处理添加css文件中兼容前缀
			{test:/\.css$/,use:['style-loader','css-loader','postcss-loader']},
		]
	}
}

如果配置过css文件打包配置,直接在其后面添加‘postcss-loader’


– 配置打包样式表中的图片和字体文字

在css中background-image: url(‘路径’);,打包时会报错。所以需要以下配置。

  1. 运行npm i url-loader file-loader -D,安装相关插件。
  2. 在webpack.config.js文件中module中rules数组中,添加如下配置:
module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//打包样式表中图片文字文件
			{test:/\.jpg|png|gif|bmp|ttf|eot|svg|woff|woff2$/,use:'url-loader?limit=19342'},
		]
	}
}

?之后是loader的参数项,limit 用来指定图片大小,单位字节(byte)。只有小于linit的图片才会白转为base64格式


– 打包js文件中高级语法

  1. 运行npm i babel-losder @babel/core @babel/runtime –D -D,安装转换器相关的包。
  2. 运行npm i @babel/preset-env @babel/plugin-transform-runtime @babel/plugin-proposal-class-properties –D,安装babel语法插件相关的包
  3. 在根目录中创建babel配置文件babel.config.js
module.exports = {
    presets:['@babel/preset-env'],
    plugins:['@babel/plugin-transform-runtime','@babel/plugin-proposal-class-properties']
}
————————————————
版权声明:本文为优快云博主「can of love」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40666120/article/details/106164598
  1. 在webpack.config.js文件中module中rules数组中,添加如下配置:
module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//配置js高级语法
			{test: /\.js$/,use: 'babel-loader',exclude:/node_modules/}
		]
	},
}

exclude:排除/node_modules/中的.js文件


– vue单文件组件加载器

在项目中组件的运用是很多的,如果都将组件写入一个文件中,不太现实,所以需要.vue单文件组件,来便捷组件的开发与运用。

  1. 运行npm i vue-loader vue-template-compiler -D,安装相关插件。
  2. 在webpack.config.js文件中module中rules数组中,添加如下配置:
const VueLoaderPlugin=require('vue-loader/lib/plugin')//导入插件

module.exports={
	module:{//所有第三方文件模板的匹配规则
		rules:[
			//加载打包vue文件规则
			{test:/\.vue$/,loader:'vue-loader'}
		]
	},
	//plugin数组->webpack打包用到的插件
	plugins:[htmlPlugin,new VueLoaderPlugin()],
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值