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:
node-version: "22"
- name: Install bun
run: |
curl -fsSL https://bun.sh/install | bash
echo "$HOME/.bun/bin" >> "$GITHUB_PATH"
- name: Install dependencies
run: npm ci
run: bun install --frozen-lockfile
- name: Build SPA
run: npm run build-only
run: bun run build-only
- name: Deploy via RSYNC
uses: up9cloud/action-rsync@master

1
.gitignore vendored
View File

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

View File

@@ -1,10 +1,10 @@
FROM node:lts-alpine
FROM oven/bun:1.1-alpine
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn
COPY ./ ./
COPY package.json bun.lock ./
COPY vendor ./vendor
RUN bun install --frozen-lockfile
COPY . .
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
build:
context: .
volumes:
- '.:/app'
ports:
- '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",
"version": "1.2.0",
"type": "module",
"scripts": {
"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",
"serve": "vue-cli-service serve",
"build-only": "vite build",
"type-check": "vue-tsc --skipLibCheck --noEmit",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore --fix",
"lint:fix": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write \"src/**/*.{ts,vue,json}\"",
"format:check": "prettier --check \"src/**/*.{ts,vue,json}\""
},
"dependencies": {
"@floating-ui/vue": "^0.2.1",
"@headlessui/vue": "^1.7.3",
"@heroicons/vue": "^2.0.12",
"@vueuse/core": "^9.12.0",
"@web3-onboard/injected-wallets": "^2.11.2",
"@web3-onboard/vue": "^2.9.0",
"alchemy-sdk": "^2.3.0",
"axios": "^1.2.1",
"marked": "^4.2.12",
"qrcode": "^1.5.1",
"viem": "^2.31.3",
"vite-svg-loader": "^5.1.0",
"vue": "^3.2.41",
"vue-markdown": "^2.2.4",
"vue-router": "^4.1.5"
"@floating-ui/vue": "^1.1.11",
"@graphql-typed-document-node/core": "^3.2.0",
"@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",
"@tanstack/query-core": "^5.100.8",
"@tanstack/vue-query": "^5.100.8",
"@urql/core": "^6.0.1",
"@urql/vue": "^2.1.0",
"@vueuse/core": "^14.3.0",
"@wagmi/core": "^3.4.8",
"@wagmi/vue": "^0.5.11",
"graphql": "^16.13.2",
"marked": "^18.0.3",
"permissionless": "^0.2.57",
"qrcode": "^1.5.4",
"viem": "^2.48.8",
"vite-svg-loader": "^5.1.1",
"vue": "^3.5.33",
"vue-router": "^5.0.6"
},
"devDependencies": {
"@babel/preset-env": "^7.20.2",
"@babel/preset-typescript": "^7.18.6",
"@rushstack/eslint-patch": "^1.1.4",
"@types/crc": "^3.8.0",
"@types/marked": "^4.0.8",
"@types/node": "^16.11.68",
"@types/qrcode": "^1.5.0",
"@types/vue-markdown": "^2.2.1",
"@vitejs/plugin-vue": "^3.1.2",
"@vitejs/plugin-vue-jsx": "^2.0.1",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^11.0.0",
"@vue/tsconfig": "^0.1.3",
"@wagmi/cli": "^2.3.1",
"autoprefixer": "^10.4.12",
"eslint": "^8.22.0",
"eslint-plugin-vue": "^9.3.0",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.18",
"prettier": "^2.7.1",
"tailwindcss": "^3.2.1",
"typescript": "~5.8.2",
"vite": "^3.1.8",
"vue-tsc": "^2.2.8"
}
"@axe-core/playwright": "^4.11.3",
"@graphql-codegen/cli": "^7.0.0",
"@graphql-codegen/client-preset": "^6.0.0",
"@graphql-codegen/typed-document-node": "^7.0.0",
"@graphql-codegen/typescript": "^6.0.0",
"@graphql-codegen/typescript-operations": "^6.0.0",
"@playwright/test": "^1.59.1",
"@tailwindcss/vite": "^4.2.4",
"@types/node": "^25.6.0",
"@types/qrcode": "^1.5.6",
"@vitejs/plugin-vue": "^6.0.6",
"@vitejs/plugin-vue-jsx": "^5.1.5",
"@vitest/coverage-v8": "^4.1.5",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.7.0",
"@vue/test-utils": "^2.4.10",
"@vue/tsconfig": "^0.9.1",
"@wagmi/cli": "^2.10.0",
"autoprefixer": "^10.5.0",
"eslint": "^10.3.0",
"eslint-plugin-vue": "^10.9.0",
"happy-dom": "^20.9.0",
"lighthouse": "^13.2.0",
"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