webpack- html-webpack-plugin

栏目: Html · 发布时间: 6年前

内容简介:如果你的是用vue-cli生成你的vue项目,意味着生成的项目的默认webpack配置几乎不需要做什么修改,你通过npm run build就能得到可以用于发布的/dist文件夹,里面包含着一个index.html文件和build出来的output文件。如果打开/dist/index.html文件,大概你看到的是类似于这样:这里值得注意的一点是,文件里面的index.65580a3a0e9208990d3e.js和main.3d6f45583498a05ab478.js,在每次执行简单地来说我们需要html

如果你的是用vue-cli生成你的vue项目,意味着生成的项目的默认webpack配置几乎不需要做什么修改,你通过npm run build就能得到可以用于发布的/dist文件夹,里面包含着一个index.html文件和build出来的output文件。如果打开/dist/index.html文件,大概你看到的是类似于这样:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Output Management</title>
</head>
<body>
<script type="text/javascript" src="index.65580a3a0e9208990d3e.js"></script>
<script type="text/javascript" src="main.3d6f45583498a05ab478.js"></script>
</body>
</html>

这里值得注意的一点是,文件里面的index.65580a3a0e9208990d3e.js和main.3d6f45583498a05ab478.js,在每次执行 npm run build 之后这两个文件的文件名里面的hash值是可能变化的,而我们不可能每次都手动去修改这个index.html文件所引用的文件的名字吧?所幸,有这么一个plugin能帮我们做这件事,他就是: html-webpack-plugin

简单地来说我们需要html-webpack-plugin能做2件事:

  • 生成用于发布的index.html文件
  • 自动替换每次build出来的output文件

说了那么多也是废话,直接看代码来得直接:

一:安装html-webpack-plugin

npm install --save-dev html-webpack-plugin

二:配置webpack.config.js

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    entry: {
        index: './src/index.js',
        main: './src/main.js'
    },
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: '[name].[chunkhash].js',
    },
    plugins: [
        new HtmlWebpackPlugin({
        })
    ]
}

执行

npm run build

得到:

webpack- html-webpack-plugin

打开dist/index.html文件看下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Webpack App</title>
</head>
<body>
<script type="text/javascript" src="index.65580a3a0e9208990d3e.js"></script>
<script type="text/javascript" src="main.3d6f45583498a05ab478.js"></script>
</body>
</html>

在我们的webpack.config.js文件里,我们只是new HtmlWebpackPlugin({}),没有给HtmlWebpackPlugin任何参数。可以看到HtmlWebpackPlugin做了2件事:

1: HtmlWebpackPlugin会默认生成index.html文件, 放到我们的dist/目录下面

2:dist/index.html会自动更新我们每次build出来的文件

在进行更多的探讨之前,我们有必要来先看看现目前项目的结构:

webpack- html-webpack-plugin

可以看到截止到目前我们的项目里面是没有任何html源文件的。

三:添加源文件index.html

上一步呢我们只是new了一个没有任何参数的HtmlWebpackPlugin。其实HtmlWebpackPlugin有很多参数可以使用,下面我们介绍比较常用的几个。

1:我们先在项目的根目录下添加一个index.html源文件,里面的内容是:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>index.html source file</title>
</head>
<body>
</body>
</html>

2: 修改webpack.config.js,给HtmlWebpackPlugin添加参数:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    entry: {
        index: './src/index.js',
        main: './src/main.js'
    },
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: '[name].[chunkhash].js',
    },
    plugins: [
        new HtmlWebpackPlugin({
            filename: 'html/example.html',
            template: 'index.html'
        })
    ]
}

执行

npm run build

得到:

webpack- html-webpack-plugin

配置里面的:

new HtmlWebpackPlugin({
            filename: 'html/example.html',
            template: 'index.html'
        })

filename

filename可以配置最后生成的文件名字,甚至可以给一个带父文件夹路径的,比如这里的‘html/example.html’。

template

template可以配置最后的html文件的源文件。例如这里,我们使用根目录下的index.html,最后生成的dist/html/example.html文件其实是以这里的index.html为源文件的,这一点可以从dist/html/example.html和index.html的<title>一样看出来。

关于html-webpack-plugin更多的配置可以参考 它的github


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

浪潮之巅(第三版)(上下册)

浪潮之巅(第三版)(上下册)

吴军 / 人民邮电出版社 / 2016-5 / 99.00元

一个企业的发展与崛起,绝非只是空有领导强人即可达成。任何的决策、同期的商业环境,都在都影响着企业的兴衰。《浪潮之巅》不只是一本历史书,除了讲述科技顶尖企业的发展规律,对于华尔街如何左右科技公司,以及金融风暴对科技产业的冲击,也多有着墨。此外,这本书也着力讲述很多尚在普及 或将要发生的,比如微博和云计算,以及对下一代互联网科技产业浪潮的判断和预测。因为在极度商业化的今天,科技的进步和商机是分不开的。......一起来看看 《浪潮之巅(第三版)(上下册)》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具