Blogger Information
Blog 10
fans 0
comment 1
visits 18445
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
webpack系列(4)--处理html
疯狂电脑10086的博客
Original
1167 people have browsed it

处理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. ],
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post