javascript - Webpack - 更新 HTML 以包含最新 [散列] 包的最佳方式

标签 javascript html webpack browser-cache webpack-2

我正在使用 webpack 生成哈希包文件名。

假设我使用的是静态 HTML、CSS 和 JS,自动更新 index.html 以指向最新包的最佳方法是什么?

例如,

更新:

<script src="e8e839c3a189c25de178.app.js"></script>
<script src="c353591725524074032b.vendor.js"></script>

到:

<script src="d6cba2f2e2fb3f9d98aa.app.js"></script>
<script src="c353591725524074032b.vendor.js"></script> // no change

每当有新的 bundle 版本可用时自动。

最佳答案

令人惊讶的是,这就是 html-webpack-plugin是为了。

var webpack = require('webpack');
var path = require('path');
var HTMLWebpackPlugin = require('html-webpack-plugin');

module.exports = function(env) {
    return {
        entry: {
            main: './src/index.js',
            vendor: 'moment'
        },
        output: {
            filename: '[chunkhash].[name].js',
            path: path.resolve(__dirname, 'dist')
        },
        plugins: [
            new webpack.optimize.CommonsChunkPlugin({
                names: ['vendor', 'manifest']
            }),
            new HTMLWebpackPlugin({
                tempate: path.join(__dirname, './src/index.html')
            })
        ]
    }
};

这会在 dist 目录中生成一个 index.html,其中包含按正确顺序排列的 script

youtube example

关于javascript - Webpack - 更新 HTML 以包含最新 [散列] 包的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942036/

相关文章:

javascript - 关于使用 jquery 将图像源更改为另一个图像的源

javascript - 如何使用react实现导航栏

javascript - 如何在JavaScript中的RSA-OAEP算法中使用publicExponent作为65537?

javascript - 如何使用 JavaScript 获取与元素 SPAN 样式相关的所有文本?

webpack - Vue.js/webpack 没有创建构建文件?

javascript - babel-eslint 不允许动态导入

javascript - D3轴标签刻度

css footer-link 无法在 html5 的底部进行调整

javascript - 如何从视频中删除 YouTube Logo ?

javascript - Webpack 无法解析 svg