A Vue.js frontend for a smart contract
VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).
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 TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:
- Disable the built-in TypeScript Extension
- Run 
Extensions: Show Built-in Extensionsfrom VSCode's command palette - Find 
TypeScript and JavaScript Language Features, right click and selectDisable (Workspace) 
 - Run 
 - Reload the VSCode window by running 
Developer: Reload Windowfrom the command palette. 
See Vite Configuration Reference.
- Fetch this repository into your local (You can clone with Git or just download files into a directory.)
 - Install Docker
 - Install VS Code
 - Install "Dev Containers" VS Code extension
 - Open a terminal in the project path
 
At first, you should generate an SSH key, add it to your GitHub account and copy the private key into the project directory.
After then, you can start frontend container:
docker compose up frontendYou can use Dev Containers VS Code extension to open a VS Code instance in this container.
Run end-to-end tests with Playwright:
docker compose up playwrightnpm installnpm run devnpm run buildRun Unit Tests with Vitest
npm run test:unitRun End-to-End Tests with Playwright
# Install browsers for the first run
npx playwright install
# When testing on CI, must build the project first
npm run build
# Runs the end-to-end tests
npm run test:e2e
# Runs the tests only on Chromium
npm run test:e2e -- --project=chromium
# Runs the tests of a specific file
npm run test:e2e -- tests/example.spec.ts
# Runs the tests in debug mode
npm run test:e2e -- --debugLint with ESLint
npm run lint