From abad1b8161a62a84733ce1607ada6f18a956e5bc Mon Sep 17 00:00:00 2001 From: omnus Date: Wed, 11 Sep 2024 22:20:27 +1200 Subject: [PATCH] Next.js compliant command for production builds (#2219) * feat: Vercel compliant command for prod builds * feat: simplify to a single command, rename command Also included the script to download assets. * fix: exclude vercel injected env vars Vercel injects a number of environment variables, that in some cases can result in run time errors when the app is reading from envs.js. Exclude these. --- deploy/scripts/make_envs_script.sh | 6 ++++++ package.json | 1 + 2 files changed, 7 insertions(+) diff --git a/deploy/scripts/make_envs_script.sh b/deploy/scripts/make_envs_script.sh index 0634296c45..b3548cb207 100755 --- a/deploy/scripts/make_envs_script.sh +++ b/deploy/scripts/make_envs_script.sh @@ -18,6 +18,12 @@ echo "window.__envs = {" >> $output_file; # Iterate through all environment variables for var in $(env | grep '^NEXT_PUBLIC_' | cut -d= -f1); do + # Skip variables that start with NEXT_PUBLIC_VERCEL. Vercel injects these + # and they can cause runtime errors, particularly when commit messages wrap lines. + if [[ $var == NEXT_PUBLIC_VERCEL* ]]; then + continue + fi + # Get the value of the variable value="${!var}" diff --git a/package.json b/package.json index dce8636f60..b8434114ed 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dev:preset": "./tools/scripts/dev.preset.sh", "dev:preset:sync": "tsc -p ./tools/preset-sync/tsconfig.json && node ./tools/preset-sync/index.js", "build": "next build", + "build:next": "./deploy/scripts/download_assets.sh ./public/assets/configs && yarn svg:build-sprite && ./deploy/scripts/make_envs_script.sh && next build", "build:docker": "docker build --build-arg GIT_COMMIT_SHA=$(git rev-parse --short HEAD) --build-arg GIT_TAG=$(git describe --tags --abbrev=0) -t blockscout-frontend:local ./", "start": "next start", "start:docker:local": "docker run -p 3000:3000 --env-file .env.local blockscout-frontend:local",