Webpack学习系列 | Webpack 5 集成 HTML 插件高效解决文件路径问题
程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构。分享vue、Java等前后端技术和架构。
本文摘要:主要通过实操讲解运用Webpack 5 如何集成 HTML 插件从而高效解决文件路径问题
在前面的学习中,我们创建了入口页面: template/index.html
,在该文件中手动引入了打包后的 bundle.js 文件。如果打包路径修改了,index.html 中也需要修改 bundle.js 的文件路径,很不方便。其实这些工作,webpack 提供了对应的插件帮助我们完成: html-webpack-plugin
。
1 安装依赖
安装 html-webpack-plugin
为开发依赖:
yarn add html-webpack-plugin -D
2 修改 webpack 配置
修改 webpack.config.js 文件:
首页引入该插件:
const HtmlWebpackPlugin = require('html-webpack-plugin')
然后在 plugins 节点数组中添加该插件
plugins: [ ... new HtmlWebpackPlugin() ],
3 测试运行
上面配置插件时只创建了对象,没有传入任何参数。先执行 yarn build
打包。 这时候会发现 dist 目录下多了一个 index.html。这个 index.html 并不是我们编写的 template/index.html 文件,而只是一个空文件,里面引入了打包后的 bundle.js 文件。
4 其他说明
4.1 使用自定义模板
如果要使用我们自己编写的index.html 文件,可以通过 HtmlWebpackPlugin 的参数指定。
plugins: [ ... new HtmlWebpackPlugin({ template: path.resolve(__dirname, 'template/index.html') }) ],
在template/index.html 文件中,我们无需手动引入 dist/js/bundle.js
,webpack 会打包时完成对 bundle.js 的引入。
再次执行 yarn build
打包,会发现新生成的 dist/index.html 文件保留了 template/index.html
的内容,同时还自动引入了打包后的 bundle.js 文件。在浏览器中访问 dist/index.html,界面和控制台都正常显示。
4.2 压缩 HTML
使用了 html-webpack-plugin
插件,在开发模式下(mode: development)打包后的 HTML 文件不会被压缩。但在生产模式下(mode: production),打包后的 HTML 文件会被自动压缩。
今日优雅哥(\/ : youyacoder)学习结束,期待关注留言分享~~
- 线程池底层原理详解与源码分析
- 30分钟掌握 Webpack
- 线性回归大结局(岭(Ridge)、 Lasso回归原理、公式推导),你想要的这里都有
- 【前端必会】webpack loader 到底是什么
- 中心化决议管理——云端分析
- HashMap底层原理及jdk1.8源码解读
- 详解JS中 call 方法的实现
- 打印 Logger 日志时,需不需要再封装一下工具类?
- 初识设计模式 - 代理模式
- 密码学奇妙之旅、01 CFB密文反馈模式、AES标准、Golang代码
- Springboot之 Mybatis 多数据源实现
- CAS核心思想、底层实现
- 面试突击86:SpringBoot 事务不回滚?怎么解决?
- 基于electron vue element构建项目模板之【打包篇】
- MiniWord .NET Word模板引擎,藉由Word模板和数据简单、快速生成文件。
- 认识线程,初始并发
- 1-VSCode搭建GD32开发环境
- 初识设计模式 - 原型模式
- 线程安全问题的产生条件、解决方式
- 2>&1到底是什么意思?