| .forgejo/workflows | ||
| .vscode | ||
| docs/superpowers/specs | ||
| e2e | ||
| public | ||
| src | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .oxfmtrc.json | ||
| .oxlintrc.json | ||
| bun.lock | ||
| Dockerfile | ||
| env.d.ts | ||
| eslint.config.ts | ||
| global.d.ts | ||
| index.html | ||
| nginx.conf | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| sample.env | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.vitest.json | ||
| vite-env.d.ts | ||
| vite.config.ts | ||
| vitest.config.ts | ||
portfolio
This template should help get you started developing with Vue 3 in Vite.
Recommended IDE Setup
VS Code + Vue (Official) (and disable Vetur).
Recommended Browser Setup
- Chromium-based browsers (Chrome, Edge, Brave, etc.):
- Firefox:
Type Support for .vue Imports in TS
TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.
Customize configuration
See Vite Configuration Reference.
Project Setup
bun install
Compile and Hot-Reload for Development
bun dev
Type-Check, Compile and Minify for Production
bun run build
Run Unit Tests with Vitest
bun test:unit
Run End-to-End Tests with Playwright
# Install browsers for the first run
npx playwright install
# When testing on CI, must build the project first
bun run build
# Runs the end-to-end tests
bun test:e2e
# Runs the tests only on Chromium
bun test:e2e --project=chromium
# Runs the tests of a specific file
bun test:e2e tests/example.spec.ts
# Runs the tests in debug mode
bun test:e2e --debug
Lint with ESLint
bun lint
Docker
The Dockerfile serves a pre-built dist/ directory via nginx, so build the
app first:
bun run build
docker build -t portfolio .
docker run --rm -p 8080:80 portfolio
The site will be available at http://localhost:8080.
CI publishing
A Forgejo Actions workflow (.forgejo/workflows/docker-publish.yml) builds the
image and pushes it to the Forgejo container registry whenever a v* tag is
pushed (e.g. v1.2.3):
git.mcpeakdev.com/mcpeakml/portfolio:<version>git.mcpeakdev.com/mcpeakml/portfolio:latest
This requires a REGISTRY_TOKEN repository secret containing a token with
write:package permission for the registry.