From 1ccd8873e423db6ed1ea8ff578cc18e40e110509 Mon Sep 17 00:00:00 2001 From: Ed Tanous Date: Sun, 21 Apr 2024 17:02:30 -0700 Subject: Make two webpack plugin modifications First, remove the preload plugin installed by default. Given that the login page requires the complete javascript package to be loaded before the page can be rendered, and doing the rendering inside of bmcweb before javascript is loaded[1] doesn't seem to be desired by the community, preloading it does us essentially no good. The DOM itself is tiny. This fixes a split second flash that's seen on refresh, where the DOM is loaded, but the javascript has not, so there's no content to render. Second, modify the html loader plugin to produce the hash of the file at output, thus allowing the index file to be cached, and allowing the etag machinery[2] to work. [1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/35456 [2] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/70644 Tested: After this patch, nearly all resources on refresh return 304, not modified from bmcweb. This significantly reduces the requirements for TLS encryption on the BMC. Change-Id: I7189c6024cacba099705ff6d27e4567bf88f3df4 Signed-off-by: Ed Tanous --- vue.config.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vue.config.js b/vue.config.js index e66d5d15..01d48b94 100644 --- a/vue.config.js +++ b/vue.config.js @@ -69,6 +69,11 @@ module.exports = { .options({ name: '[name].[contenthash:8].[ext]', }); + config.plugins.delete('preload'); + config.plugin('html').tap((options) => { + options[0].filename = 'index.[hash:8].html'; + return options; + }); }, configureWebpack: (config) => { config.plugins.push( -- cgit v1.2.3