Skip to content

Commit

Permalink
Make two webpack plugin modifications
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
edtanous committed May 22, 2024
1 parent f11a190 commit 1ccd887
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions vue.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down

0 comments on commit 1ccd887

Please sign in to comment.