webpack学习篇3

自动化生成项目中的html

每次打包之后的文件名都是不确定的。每次都要手动去设html中引入的路径很麻烦。
借用webpack的插件来解决这个问题。

//先在项目中安装此插件
npm install html-webpack-plugin - -save-dev

如何使用:

//在webpack的配置文件中引入该插件
var htmlWebpackPlugin = require(‘html-we pack-plugin’)
module.exports = {
  plugins:[
    new htmlWebpackPlugin(
      filename: ‘index-[hash].html’,  //打包生成的html的名字
      template: ‘index.html’,  //以index.html为模版去打包生成html
      inject: ‘head’  //指定引入的脚本是放在head里还是body里
    )
  ]
}

当entry传入的是一个对象(多页面应用),意味着有多个页面,就需要去生成多个html。

module.exports = {
  new htmlWebpackPlugin({
    filename: ‘a.html’,
    template: ‘index.html’,
    inject: ‘body’,
    title: ‘this is a.html’,
    chunks: [‘main’, ‘a’]  //页面所对应的js文件
  }),
  new htmlWebpackPlugin({
    filename: ‘b.html’,
    template: ‘index.html’,
    inject: ‘body’,
    title: ‘this is b.html’,
    chunks: [‘b’],  //页面所对应的js文件
    excludeChunks: [‘a’]  //排除文件,除了a其他的都要
  })
}

把初始化的脚本直接嵌入到页面,而不是以连接的形式引入到页面,现在都是<script></script>标签引入的,会增加http的请求。
如果直接调用nodejs读取文件直接读取想要引入的文件有一点问题,就是如果直接引用了这个文件是不会经过webpack处理的。
如果想要引入经过webpack流处理过后的文件代码如下:

<script type=‘text/JavaScript’>
  <% = compilation.assets[htmlWebpackPlugin.files.chunks.main.entry.substr(htmlWebpackPlugin.files.publicPath.length).source()] %>
</script>

引入的是main.js。打包完成后的index.html的<script>标签里就会有main.js的内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,712评论 4 31
  • Webpack学习总结 此文只是自己学习webpack的一些总结,方便自己查阅,阅读不变,非常抱歉!! 下载安装:...
    Lxs_597阅读 4,631评论 0 0
  • 作者:小 boy (沪江前端开发工程师)本文原创,转载请注明作者及出处。原文地址:https://www.smas...
    iKcamp阅读 7,696评论 0 18
  • 全局安装webpack 全局安装webpack会有个问题,就是当你有两个项目依赖于不同版本的webpack,就会有...
    説好的妹紙呢阅读 5,879评论 0 11
  • 0904199c8f18阅读 1,184评论 0 0

友情链接更多精彩内容