Skip to content

Vue CLI builds are static files — put them on a URL

vue-cli-service build emits a complete static bundle in dist/. For apps still on Vue CLI, deploying that folder is a single POST — no platform integration.

Drop your Vue CLI report here — get a live link

free, no account, live for 7 days.

The artifact dead-end

Vue CLI is in maintenance mode, but its output hasn't changed: dist/ is plain static files. Sharing a build shouldn't require migrating the toolchain first.

The classic loop — build locally, scp to a box, or ask someone to pull — is a lot of ceremony for a folder of static assets.

Two lines to a live link

Build your output like you already do, then hand the folder to the action:

Build the app

npm run build

.github/workflows/ci.yml

- uses: bitgate/ship-page-action@v1
  if: always()
  with:
    path: dist/

Or with plain curl — no account needed

cd dist && zip -qr - . | curl -fsS -X POST https://ship.page/deploy \
  -H "Content-Type: application/zip" \
  --data-binary @- | jq -r .url

path: dist/ deploys exactly what the tool wrote — no detection to configure. The link goes in the job summary — add comment: true and it lands on the pull request too.

What you get

  • dist/ deploys exactly as built — the default publicPath of / resolves at the drop's subdomain root
  • Works from any machine with curl: zip the folder, POST it, share the link
  • Moving to Vite? Same recipe, same dist/ — see the Vite page

Questions

Do I need to change publicPath?

No — the default / works because drops mount at the root of their own subdomain. A custom publicPath like /app/ would have to match a path under the drop URL, so leave it default for previews.

Vue CLI or Vite?

Vue CLI is maintenance-mode; create-vue (Vite-based) is the current default. Both emit dist/, so the deploy step is identical either way.

Does history-mode routing work?

The entry page works everywhere. Drops serve files as-is with no rewrite rules, so deep links into history mode behave like on any plain static host — hash mode works fully.

Try it on your next run

Anonymous deploys need no account and no key — paste the step, get a link. When you want stable URLs that redeploy in place, an API key and a name are all it takes.

Need to share the report with someone outside GitHub? How to share a GitHub Actions artifact without a login.