适合新手的 webpack 详细配置


前言

我相信很多想学习 webpack 的童靴,一定都进过它的官网(webpack 中文官方文档),也有一定的了解 webpack 相关的知识啦,我在这里就不多说了。估计很多同学和我一样,看了官网的东西还是云里雾里,这 webpack 到底怎么用呢?什么时候该用什么呢?,本文就来说说,对于新手而言的 webpack 基础配置。


配置参数说明

entry:资源入口文件,所有的资源最后会打包成一个 JS 文件。

output:打包之后存放的文件路径。path 为相对路径,filename 为打包后的文件名。

loader:webpack 本身只能打包 js 文件,使用 loader 来处理 js 以外的文件。

plugins:插件,提供代码压缩,生成 html ,自动清除打包后的文件等一系列功能。

mode:webpack 对应的模式,分为development  production。

安装 webpack

注意:首先需要保证你的 node 是10 以上的版本

npm i webpack webpack-cli -g    //全局安装

此外,还需要在项目中再安装一次,同以上代码,不要最后的全局安装(-g)。


打包 less 资源

我们知道 webpack 只能处理 js 文件,js 以外的不能够处理,这个时候,我们就需要 loader。

npm i css-loader less-loader style-loader less

webpack.config.js 中配置,在 rules 数组中添加一个对象:

{
	test:/\.less$/,  //配置所有的 less 文件
	use:[
	  'style-loader',   //用于在 html 文件中创建一个 style 标签,将样式放进去
	  'css-loader',     // less 编译后的 css 转换成为一个模块
	  'less-loader',     // less 编译城 css ,但不生成单独的 css 文件,放在内存中
      ] //此数组有顺序要求,不可随意改变此顺序
}

js语法转换

将浏览器不能识别的新语法转换为可以识别的旧语法,做浏览器的兼容性处理。

npm i babel-loader @babel/core @balel/preset-env

webpack.config.js 中配置,在 rules 数组中添加一个对象:

{
	test:/\.js$/,
	exclude:/node_modules/,
	use:[
	 loader:"babel-loader",
	 option:{
	 	presets:['@babel/preset-env']
	 }
}

打包样式文件中的图片资源

npm i file-loader url-loader

webpack.config.js 中配置,在 rules 数组中添加一个对象:

{
	test:/\.(png|jpg|gif)$/,
	use:[
	 loader:"file-loader",
	 option:{
	 	publicPath:'../dist/images',  //图片打包后的url路径
	 	outputPath:'images',  //图片本地输出路径
	 	name:'[hash:5].[ext]',  //修改文件名称 [hash:5] hash值取5 [ext] 文件扩展名
	 }
}

打包 html 文件

html 文件 webpack 不能解析,需要借助插件。

npm i htmt-webpack-plugin

plugin 的配置方法与 loader 不同,首先需要引入插件:

const HtmlWebpackPlugin = require("html-webpack-plugin")

webpack.config.js 中配置,在 plugins 数组中添加:

new HtmlWebpackPlugin({
	template:'./src/index.html', //以当前文件为模板创建的 html 
}),

打包 html 中图片资源

在 html 中的图片使用 url-loader 不能处理,他只能处理 js 中引入的图片,所以这里需要引入 html-loader 处理。

npm i html-loader

webpack.config.js 中配置,在 rules 数组中添加一个对象:

{
	test:/\.(html)$/,  //配置所有的 less 文件
	use:[
	  loader:'html-loader',
      ] 
}

自动编译打包运行

npm i webpack-dev-server

修改 webpack 配置对象(注意:与 loader 同级)

devServer:{
	open:true,  //自动打开浏览器
	compress: true,  //启动 gzip 压缩
	port:3000, //端口号
}

提醒:这里需要修改上述的 url-loader 部分配置

publicPath:'images/',

还需要修改 package.json 中 script 指令

"start":"webpack-dev-server",   //项目运行指令 npm run start

总结

以上是基于在开发环境中一些 webpack 基础的配置,还有很多的有意思的 loader 和 plugin 配置,可以参见 webpack 官网。
下一次会总结一些在生产环境中的 webpack 的相关配置。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值