• 技术文章 >web前端 >html教程

    webpack对html文件的处理

    不言不言2018-05-28 17:45:36原创1807

    本篇文章给大家分享的是关于webpack对html文件的处理 ,步骤都很详细,有需要的朋友可以参考一下

    所以解决办法是:

    使用webpack插件:HtmlWebpackPlugin

    npm install --save-dev extract-text-webpack-plugin

    第二步:webpack.config.js配置

    其中HtmlWebpackPlugin的配置项有:

    Name类型Description
    title{String}用于生成的HTML文档的标题
    filename{String}要生成HTML的文件。可以指定目录
    template{String}依据的模板文件
    inject{Boolean|String}将js资源注入到页面哪个部位,值有:true \ ‘head’ \ ‘body’ \ false,当传递true或’body’所有JavaScript资源将被放置在正文元素的底部。’head’将脚本放置在head元素中
    favicon{String}将给定的图标路径添加到输出HTML
    hash{Boolean}如果true将webpack所有包含的脚本和CSS文件附加一个独特的编译哈希。这对缓存清除非常有用
    chunks{?}放入你需要引入的资源模块
    excludeChunks{?}不放入你某些资源模块

    预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
    比如login页面引入login的js和css、index引入对应js和css

    webpack.config.js配置如下:

    const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = {
      entry:{    'commom':['./src/page/common/index.js'],    'index':['./src/page/index/index.js'],    'login':['./src/page/login/index.js']
      },
      output:{
        path:path.resolve(__dirname, 'dist'),
        filename:'js/[name].js'
      },
      module:{
        rules:[
          {
            test:/\.css$/,
            use:ExtractTextPlugin.extract({
              fallback: "style-loader",
              use: "css-loader"
            })
          }
        ]
      },
      plugins:[    //独立通用模块
        new webpack.optimize.CommonsChunkPlugin({
          name : 'common',
          filename : 'js/base.js'
        }),    //独立打包css
        new ExtractTextPlugin('css/[name].css'),    //对html模板进行处理,生成对应的html,引入需要的资源模块
        new HtmlWebpackPlugin({
          template:'./src/view/index.html',//模板文件
          filename:'view/login/index.html',//目标文件
          chunks:['commom','login'],//对应加载的资源
          inject:true,//资源加入到底部
          hash:true//加入版本号
        })
      ]
    }
    module.exports= configs

    然后打包结果如下
    这里写图片描述

    其中生成的目标文件:
    这里写图片描述

    所以解决办法是:

    使用webpack插件:HtmlWebpackPlugin

    npm install --save-dev extract-text-webpack-plugin

    第二步:webpack.config.js配置

    其中HtmlWebpackPlugin的配置项有:

    Name类型Description
    title{String}用于生成的HTML文档的标题
    filename{String}要生成HTML的文件。可以指定目录
    template{String}依据的模板文件
    inject{Boolean|String}将js资源注入到页面哪个部位,值有:true \ ‘head’ \ ‘body’ \ false,当传递true或’body’所有JavaScript资源将被放置在正文元素的底部。’head’将脚本放置在head元素中
    favicon{String}将给定的图标路径添加到输出HTML
    hash{Boolean}如果true将webpack所有包含的脚本和CSS文件附加一个独特的编译哈希。这对缓存清除非常有用
    chunks{?}放入你需要引入的资源模块
    excludeChunks{?}不放入你某些资源模块

    预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
    比如login页面引入login的js和css、index引入对应js和css

    webpack.config.js配置如下:

    const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = {
      entry:{    'commom':['./src/page/common/index.js'],    'index':['./src/page/index/index.js'],    'login':['./src/page/login/index.js']
      },
      output:{
        path:path.resolve(__dirname, 'dist'),
        filename:'js/[name].js'
      },
      module:{
        rules:[
          {
            test:/\.css$/,
            use:ExtractTextPlugin.extract({
              fallback: "style-loader",
              use: "css-loader"
            })
          }
        ]
      },
      plugins:[    //独立通用模块
        new webpack.optimize.CommonsChunkPlugin({
          name : 'common',
          filename : 'js/base.js'
        }),    //独立打包css
        new ExtractTextPlugin('css/[name].css'),    //对html模板进行处理,生成对应的html,引入需要的资源模块
        new HtmlWebpackPlugin({
          template:'./src/view/index.html',//模板文件
          filename:'view/login/index.html',//目标文件
          chunks:['commom','login'],//对应加载的资源
          inject:true,//资源加入到底部
          hash:true//加入版本号
        })
      ]
    }
    module.exports= configs

    然后打包结果如下
    这里写图片描述

    其中生成的目标文件:
    这里写图片描述

    相关推荐:

    在webpack中使用ECharts详解

    Node.js、jade生成静态html文件实例

    webpack的插件详解

    以上就是webpack对html文件的处理的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:webpack html CSDN
    上一篇:实例详解HTML如何实现文件间自由切换 下一篇:HTML---CSS层叠样式表
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• Codeforces Round#263(Div.2)_html/css_WEB-ITnose• bootstrap问题 高手在哪里?_html/css_WEB-ITnose• div+CSS浏览器兼容问题整理(IE6.0、IE7.0 ,ie8 , FireFox)_html/css_WEB-ITnose• ajax简单小例子_基于xml的实现• ajax的其他小知识
    1/1

    PHP中文网