前端项目-webpack-配置详解

前端项目-webpack-配置详解

目录




内容

1、配置打包的入口和出口

webpack的4.x版本默认约定:

  • 打包的入口文件:src/index.js
  • 打包的默认出口文件: dist/main.js

如果需要修改打包的入口与出口,可以在webpack.config.js中新增如下配置:

const path = require('path') // 导入node.js中处理路径的模块
module.exports = {
	entry: path.join(_dirname, './src/index.js'), // 打包入口文件
	output: {
		path: path.join(_dirname, './dist'), // 输出文件目录
		filename: 'bundle.js' // 输出文件名称
	}
}

修改后的webpack.config.js

	const path = require('path')
	module.exports = {
		mode: 'development', // 开发模式
		entry: path.join(__dirname, './src/index.js'), // 打包的入口文件
		output: {
			path: path.join(__dirname, './dist'), //输出文件目录
			filename: 'bundle.js' // 输出文件名
		}
	}

项目目录和结构同上一篇博文’前端项目-webpack-安装和基本配置‘

执行打包命令

	npm run dev

然后页面index.html中导js包改为./dist/bundle.js

	<script src="../dist/bundle.js"></script>

效果同上一篇博文:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y4hMZEmf-1596120895093)(./images/2020-07-30_package-after-html.png)]

2、配置webpack的自动打包功能

每次我们改动index.js中的样式之后,已经渲染的页面并不会自动更新样式,需要我们手动打包,刷新页面样式才会改变。这太浪费操作了,那webpack有没有自动帮我们打包的功能呢?

答案当然是有,需要借助webpack-dev-server模块,步骤如下:

  1. 下载安装依赖

     npm install webpack-dev-server -D
    
  2. 修改package.json中的scripts -> dev 如下:

     "scripts": {
     	"test": "echo \"Error: no test specified\" && exit 1",
     	"dev": "webpack-dev-server"
       },
    
  3. 修改src/index.html导js包的路径

     <script src="/bundle.js"></script>
    
  4. 运行npm run dev 命令,重新进行打包

  • 打包过程如图2-1: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMJ2UTv1-1596120895095)(./images/2020-07-30_webpack-dev-server.png)]
  1. 浏览器中访问http://localhost:8080地址,查看效果
  • 效果图示2-2:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Tqfkp78-1596120895096)(./images/2020-07-30_localhost.png)]
  1. 点开src,自动访问首页index.html,查看效果
  2. 修改js中的样式,结束修改(离开当前编辑)或者保存页面自动更新样式

访问地址看到 的是目录结构,而不是我们想要的首页,那有没有办法解决呢?
看下面

3、配置生成预览页面

生成预览页面需要插件html-webpack-plugin

  1. 下载安装依赖

     npm i html-webpack-plugin -D
    
  2. 修改webpack.config.js文件头部区域,添加如下配置信息:

      // 导入生成预览页面的插件,得到一个构造函数
      const HtmlWebpackPlugin = require('html-webpack-plugin')
      
     	 const htmlPlugin = new HtmlWebpackPlugin({
     		 template: './src/index.html', // 指定用到的目标文件
     		 filename: 'index.html' // 指定生成的文件的名称,该文件存在于内存中,在目录中不显示
     	 })
    
  3. 修改webpack.config.js文件中向外暴露的配置对象,新增如下配置节点:

     module.exports = {
     	...
     	plugins: [htmlPlugin] // plugins数组是webpack打包期间会用到的插件列表
     	...
     }
    
  • 修改后的webpack.config.js代码:

      const path = require('path')
    
      // 预览页面插件
      const HtmlWebpackPlugin = require('html-webpack-plugin')
      const htmlPlugin = new HtmlWebpackPlugin({
      	template: './src/index.html', // 指定用到的模板文件
      	filename: 'index.html' // 指定生成的文件的名称,该文件存在于内存中,在目录中不显示
      })
    
      // 向外暴露的配置对象
      module.exports = {
      	mode: 'development', // 开发模式
      	entry: path.join(__dirname, './src/index.js'), // 打包的入口文件
      	output: {
      		path: path.join(__dirname, './dist'), //输出文件目录
      		filename: 'bundle.js' // 输出文件名
      	},
      	plugins: [htmlPlugin] // plugins数组是webpack打包期间会用到的插件列表
      }
    
  1. 运行npm run dev 命令,访问http://localhost:8080,自动展示首页

效果同上,不在截图

目前为止,我们修改js代码,页面会自动刷新,但是当运行npm run dev的时候它不会帮我们自动打开浏览器,不能修改地址和端口等等,下面讲解自动打包配置

4、配置自动打包的相关参数

这里只介绍常用参数配置,详细的配置可参考博文:https://blog.csdn.net/franktaoge/article/details/80083317

在package.json->scripts->dev值后面添加如下配置:

	"scripts": {
		"test": "echo \"Error: no test specified\" && exit 1",
		"dev": "webpack-dev-server --open --hot --inline --ip 127.0.0.1 --port 8888"
	  },
  • 解析
    • –open :运行npm run dev ,自动打开浏览器,访问指定的地址
    • –hot::热模块替换机制
    • –inline: 自动刷新
    • –ip: 配置IP地址
    • –port:配置端口号

重新运行 npm run dev,查看效果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NY4JLLnv-1596120895098)(./images/2020-07-30_dev-webpack-server.png)]

后记

vue官网地址:https://cn.vuejs.org/

本项目为参考某马视频开发,相关视频及配套资料可自行度娘或者联系本人。上面为自己编写的开发文档,持续更新。欢迎交流,本人QQ:806797785

前端项目源代码地址:https://gitee.com/gaogzhen/vue
后端JAVA源代码地址:https://gitee.com/gaogzhen/JAVA
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值