首页 > 代码库 > webpack自动生成html

webpack自动生成html

1.怎么解决每次打包后的文件名都要记住再可使用的问题

  1.1首先要用到webpack的一个插件:nmp install html-webpack-plugin --save-dev

  1.2在webpack-config.js里引入对插件的引用

2.怎么将输出的文件,输出到不同的目录下

 2.1首先改变path路径

 2.2其次改变filename路径  (详情见webpack.config.js) 

3.传递参数

  3.1首先在plugins里配置参数(详情见webpack.config.js里的plugins的title(title为个人定义 的变量,如果想传多个参数可以定义title1 title2等等))

  3.2调用参数,在html的标签里

    <title><%= htmlWebpackPlugin.options.title%></title>

4.遍历htmlWebpackPlugin对象里的值(不用于项目,只为学习)

  <%for(var key in htmlWebpackPlugin.files){%>

  <%=key%> :<%=JSON.stringify(htmlWebpackPlugin.files[key])%>

  <%}%>

  

  <%for(var key in htmlWebpackPlugin.options){%>

  <%=key%> :<%=JSON.stringify(htmlWebpackPlugin.options[key])%>

  <%}%>

5. 想要将打包生成后的js文件的引入一部分放在head里,一部分放在body里。这时我们只能手动的写js代码来改变,配置是达不到的

  5.1首先在自己建的index.html的head标签里写如下代码将main生成的打包js引用放在head里

    <script type="text/javascript" src="http://www.mamicode.com/"></script>

  5.2在body里将 a生成的打包js应用放在body里

    <script type=‘text/javascript‘ src=http://www.mamicode.com/‘‘></script>  

  5.3此时需要把webpack.config.js里的inject改为false,不然它会自动的将文件引入到head  

6.打包后上线

  publicpath: //上线时,引用的打包后的绝对路径的地址将会变成publicpath对应的值

7.对打包文件压缩

  minify

8.多页面应用,只需要在plugins里,继续new就可以(详情见webpack.config.js),如果想要做到生成的html引用不同的文件,只需要在chunks里配置即可,但是此时需要把5中的js代码删除

9.如果界面非常多,此时我们去一一的给界面指定使用的js会很麻烦,此时我们就要用excludeChunks它表示哪些js文件被排除在外

10.直接将初始化的界面以内嵌的方式引入界面,在自己的引入模版(index.html)里写如下代码(head里写,将main.js以内嵌的方式引入)

  <script type="text/javascript">

    <%=compilation.assets[htmlWebpackPlugin.files.chunks.main.entry.substr(htmlWebpackPlugin.files.publicPath.length)].source()%>

  </script>

11.公共方法的外连接引入文件的方式

<%for(var k in htmlWebpackPlugin.files.chunks){%>

<%if(k!==‘main‘){%>

<script type="text/javascript" src="http://www.mamicode.com/"></script>

<%}%>

<%}%>

 

  

 

webpack自动生成html