fix: valid config.json + content-hashed bundle (cache-bust)
- BuildConfig.sh: ${DEBUG:false} -> ${DEBUG:-false} and normalize to
true/false. The old syntax produced empty -> invalid config.json
("DEBUG": }) when DEBUG was unset, breaking the whole frontend.
- webpack: output [name].[contenthash].js so index.html references a
unique bundle URL each build; eliminates stale CDN/browser bundle
after deploys (no manual cache purge needed).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,12 @@ FRONTEND_HOST="${FRONTEND_HOST:-http://localhost:80}"
|
|||||||
KC_CLIENT_ID="${KC_CLIENT_ID:-labdev}"
|
KC_CLIENT_ID="${KC_CLIENT_ID:-labdev}"
|
||||||
KC_HOST="${KC_HOST:-https://login.hangman-lab.top}"
|
KC_HOST="${KC_HOST:-https://login.hangman-lab.top}"
|
||||||
KC_REALM="${KC_REALM:-Hangman-Lab}"
|
KC_REALM="${KC_REALM:-Hangman-Lab}"
|
||||||
DEBUG="${DEBUG:false}"
|
# Note: ${DEBUG:-false} (correct default syntax). The old ${DEBUG:false}
|
||||||
|
# produced an empty value when DEBUG was unset -> invalid config.json.
|
||||||
|
DEBUG="${DEBUG:-false}"
|
||||||
|
# DEBUG is emitted unquoted as a JSON boolean — guarantee it is exactly
|
||||||
|
# true/false so config.json can never be invalid JSON.
|
||||||
|
case "$DEBUG" in true|false) ;; *) DEBUG=false ;; esac
|
||||||
rm -f /usr/share/nginx/html/config.js
|
rm -f /usr/share/nginx/html/config.js
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,11 @@ module.exports = {
|
|||||||
entry: './src/index.js',
|
entry: './src/index.js',
|
||||||
output: {
|
output: {
|
||||||
path: path.resolve(__dirname, './dist'),
|
path: path.resolve(__dirname, './dist'),
|
||||||
filename: 'bundle.js',
|
// Content-hashed filename: index.html (injected by HtmlWebpackPlugin,
|
||||||
|
// and not edge-cached) points at a unique URL each build, so a new
|
||||||
|
// deploy is picked up immediately — no stale CDN/browser bundle.
|
||||||
|
filename: '[name].[contenthash].js',
|
||||||
|
chunkFilename: '[name].[contenthash].js',
|
||||||
publicPath: '/',
|
publicPath: '/',
|
||||||
clean: true,
|
clean: true,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user