switch to bun + adopt e2e dependency stack

This commit is contained in:
2026-05-04 19:49:15 -03:00
committed by hueso
parent ec1053c660
commit 6caf34b579
8 changed files with 2415 additions and 18181 deletions

View File

@@ -16,11 +16,16 @@ jobs:
with: with:
node-version: "22" node-version: "22"
- name: Install bun
run: |
curl -fsSL https://bun.sh/install | bash
echo "$HOME/.bun/bin" >> "$GITHUB_PATH"
- name: Install dependencies - name: Install dependencies
run: npm ci run: bun install --frozen-lockfile
- name: Build SPA - name: Build SPA
run: npm run build-only run: bun run build-only
- name: Deploy via RSYNC - name: Deploy via RSYNC
uses: up9cloud/action-rsync@master uses: up9cloud/action-rsync@master

1
.gitignore vendored
View File

@@ -13,6 +13,7 @@ dist
dist-ssr dist-ssr
coverage coverage
*.local *.local
vendor/
/cypress/videos/ /cypress/videos/
/cypress/screenshots/ /cypress/screenshots/

View File

@@ -1,10 +1,10 @@
FROM node:lts-alpine FROM oven/bun:1.1-alpine
WORKDIR /app WORKDIR /app
COPY package.json yarn.lock ./ COPY package.json bun.lock ./
RUN yarn COPY vendor ./vendor
COPY ./ ./ RUN bun install --frozen-lockfile
COPY . .
EXPOSE 3000 EXPOSE 3000
CMD ["yarn", "start"] CMD ["bun", "run", "start"]

2326
bun.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,5 @@ services:
container_name: p2pix_frontend container_name: p2pix_frontend
build: build:
context: . context: .
volumes:
- '.:/app'
ports: ports:
- '3000:3000' - '3000:3000'

12285
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,57 +1,88 @@
{ {
"name": "p2pix-front-end", "name": "p2pix-front-end",
"version": "1.2.0", "version": "1.2.0",
"type": "module",
"scripts": { "scripts": {
"start": "vite --host=0.0.0.0 --port 3000", "start": "vite --host=0.0.0.0 --port 3000",
"build": "run-p type-check build-only", "build": "bun run type-check && bun run build-only",
"preview": "vite preview", "preview": "vite preview",
"serve": "vue-cli-service serve",
"build-only": "vite build", "build-only": "vite build",
"type-check": "vue-tsc --skipLibCheck --noEmit", "type-check": "vue-tsc --skipLibCheck --noEmit",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore --fix", "lint": "eslint .",
"lint:fix": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" "lint:fix": "eslint . --fix",
"format": "prettier --write \"src/**/*.{ts,vue,json}\"",
"format:check": "prettier --check \"src/**/*.{ts,vue,json}\""
}, },
"dependencies": { "dependencies": {
"@floating-ui/vue": "^0.2.1", "@floating-ui/vue": "^1.1.11",
"@headlessui/vue": "^1.7.3", "@graphql-typed-document-node/core": "^3.2.0",
"@heroicons/vue": "^2.0.12", "@reown/appkit": "file:./vendor/reown-appkit/.pack/reown-appkit-1.8.19.tgz",
"@vueuse/core": "^9.12.0", "@reown/appkit-adapter-wagmi": "file:./vendor/reown-appkit/.pack/reown-appkit-adapter-wagmi-1.8.19.tgz",
"@web3-onboard/injected-wallets": "^2.11.2", "@tanstack/query-core": "^5.100.8",
"@web3-onboard/vue": "^2.9.0", "@tanstack/vue-query": "^5.100.8",
"alchemy-sdk": "^2.3.0", "@urql/core": "^6.0.1",
"axios": "^1.2.1", "@urql/vue": "^2.1.0",
"marked": "^4.2.12", "@vueuse/core": "^14.3.0",
"qrcode": "^1.5.1", "@wagmi/core": "^3.4.8",
"viem": "^2.31.3", "@wagmi/vue": "^0.5.11",
"vite-svg-loader": "^5.1.0", "graphql": "^16.13.2",
"vue": "^3.2.41", "marked": "^18.0.3",
"vue-markdown": "^2.2.4", "permissionless": "^0.2.57",
"vue-router": "^4.1.5" "qrcode": "^1.5.4",
"viem": "^2.48.8",
"vite-svg-loader": "^5.1.1",
"vue": "^3.5.33",
"vue-router": "^5.0.6"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-env": "^7.20.2", "@axe-core/playwright": "^4.11.3",
"@babel/preset-typescript": "^7.18.6", "@graphql-codegen/cli": "^7.0.0",
"@rushstack/eslint-patch": "^1.1.4", "@graphql-codegen/client-preset": "^6.0.0",
"@types/crc": "^3.8.0", "@graphql-codegen/typed-document-node": "^7.0.0",
"@types/marked": "^4.0.8", "@graphql-codegen/typescript": "^6.0.0",
"@types/node": "^16.11.68", "@graphql-codegen/typescript-operations": "^6.0.0",
"@types/qrcode": "^1.5.0", "@playwright/test": "^1.59.1",
"@types/vue-markdown": "^2.2.1", "@tailwindcss/vite": "^4.2.4",
"@vitejs/plugin-vue": "^3.1.2", "@types/node": "^25.6.0",
"@vitejs/plugin-vue-jsx": "^2.0.1", "@types/qrcode": "^1.5.6",
"@vue/eslint-config-prettier": "^7.0.0", "@vitejs/plugin-vue": "^6.0.6",
"@vue/eslint-config-typescript": "^11.0.0", "@vitejs/plugin-vue-jsx": "^5.1.5",
"@vue/tsconfig": "^0.1.3", "@vitest/coverage-v8": "^4.1.5",
"@wagmi/cli": "^2.3.1", "@vue/eslint-config-prettier": "^10.2.0",
"autoprefixer": "^10.4.12", "@vue/eslint-config-typescript": "^14.7.0",
"eslint": "^8.22.0", "@vue/test-utils": "^2.4.10",
"eslint-plugin-vue": "^9.3.0", "@vue/tsconfig": "^0.9.1",
"npm-run-all": "^4.1.5", "@wagmi/cli": "^2.10.0",
"postcss": "^8.4.18", "autoprefixer": "^10.5.0",
"prettier": "^2.7.1", "eslint": "^10.3.0",
"tailwindcss": "^3.2.1", "eslint-plugin-vue": "^10.9.0",
"typescript": "~5.8.2", "happy-dom": "^20.9.0",
"vite": "^3.1.8", "lighthouse": "^13.2.0",
"vue-tsc": "^2.2.8" "playwright-lighthouse": "^4.0.0",
} "postcss": "^8.5.8",
"prettier": "^3.5.3",
"tailwindcss": "^4.2.4",
"typescript": "^6.0.3",
"vite": "^8.0.10",
"vitest": "^4.1.5",
"vue-tsc": "^3.2.7"
},
"overrides": {
"axios": "^1.15.2",
"@reown/appkit": "file:./vendor/reown-appkit/.pack/reown-appkit-1.8.19.tgz",
"@reown/appkit-adapter-wagmi": "file:./vendor/reown-appkit/.pack/reown-appkit-adapter-wagmi-1.8.19.tgz",
"@reown/appkit-controllers": "file:./vendor/reown-appkit/.pack/reown-appkit-controllers-1.8.19.tgz",
"@reown/appkit-scaffold-ui": "file:./vendor/reown-appkit/.pack/reown-appkit-scaffold-ui-1.8.19.tgz",
"@reown/appkit-ui": "file:./vendor/reown-appkit/.pack/reown-appkit-ui-1.8.19.tgz",
"@reown/appkit-common": "file:./vendor/reown-appkit/.pack/reown-appkit-common-1.8.19.tgz",
"@reown/appkit-utils": "file:./vendor/reown-appkit/.pack/reown-appkit-utils-1.8.19.tgz",
"@reown/appkit-wallet": "file:./vendor/reown-appkit/.pack/reown-appkit-wallet-1.8.19.tgz",
"@reown/appkit-siwe": "file:./vendor/reown-appkit/.pack/reown-appkit-siwe-1.8.19.tgz",
"@reown/appkit-siwx": "file:./vendor/reown-appkit/.pack/reown-appkit-siwx-1.8.19.tgz"
},
"trustedDependencies": [
"@reown/appkit",
"esbuild",
"vue-demi"
]
} }

5842
yarn.lock

File diff suppressed because it is too large Load Diff