博主信息
博文 10
粉丝 0
评论 1
访问量 22456
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
webpack系列(4)--处理html
疯狂电脑10086的博客
原创
1376人浏览过

处理html

前面,在演示的时候,都是先打完包,然后在打包后的目录中,手动创建html文件,并且手动引入js文件;在实际项目的时候,这种方式是行不通的。

这里,我们需要使用html-webpack-plugin插件,帮助我们处理html文件。

html-webpack-plugin

  • 安装html-webpack-plugin

    1. npm i html-webpack-plugin -D
  • 在配置文件中补充如下代码:
    ```js
    // … 省略代码
    const HtmlWebpackPlugin = require(‘html-webpack-plugin’)

module.exports = {
// … 省略代码
plugins:[
new HtmlWebpackPlugin()
]
}

  1. 执行打包命令后,我们发现,在打包目录中,会自动生成`index.html`,并且自定引入了打包后的js文件。
  2. 但是,自动生成的html文件中,实际是空的,在实际项目中,可定会包含结构。
  3. 我们可以通过配置该插件的`template`来实现,按照某个模板HTML生成打包后的文件。
  4. 修改配置文件中的代码:
  5. ```js
  6. module.exports = {
  7. // ... 省略代码
  8. plugins:[
  9. new HtmlWebpackPlugin({
  10. template:path.resolve(__dirname,'src/index.html')
  11. })
  12. ]
  13. }

html-loader处理html的资源文件

在html中,可能会引入很多资源文件,比如img标签引入的图片,video标签引入的视频等等。

html的资源文件默认是不会通过webpack的处理的,那么我们在打包后,可能会因为对应的资源文件没有一起打包到目录下,而无法访问。

使用html-loader即可解决。

  • 安装html-loader

    1. npm i html-loader -D
  • 添加loader配置

  1. {
  2. test:/\.html$/i,
  3. loader:'html-loader'
  4. }

直接运行打包命令即可,HTML中引入的图片,将自动被之前配置的url-loader处理,其他的资源文件,可使用单独配置file-loader处理,比如视频资源:

  1. {
  2. test:/\.(mov|mp4)$/i,
  3. loader:'file-loader',
  4. options:{
  5. name:'[hash:10].[ext]',
  6. outputPath:'videos'
  7. }
  8. }

copy-webpack-plugin处理HTML的资源文件

处理HTML中资源文件的另一种方案是使用copy-webpack-plugin。如同其名字一样,是将资源文件拷贝到某个目标目录下。

在配置文件中,添加如下代码:

  1. // ... 省略代码
  2. const CopyWebpackPlugin = require('copy-webpack-plugin')
  3. // ... 省略代码
  4. plugins: [
  5. new CopyWebpackPlugin([
  6. {
  7. from: path.resolve(__dirname, '../public/static'),
  8. to: path.resolve(__dirname, '../dist/static'),
  9. },
  10. ]),
  11. ],
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学