chore: replace pnpm with bun across the project
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## Project Overview
|
||||
|
||||
**ttscm-ui** is an Electron desktop application built with **SvelteKit**, TypeScript, and Vite. It connects to the Optima API for credential and company management. The app uses standard SvelteKit routing for single-page navigation and pnpm for package management with patches applied to SvelteKit.
|
||||
**ttscm-ui** is an Electron desktop application built with **SvelteKit**, TypeScript, and Vite. It connects to the Optima API for credential and company management. The app uses standard SvelteKit routing for single-page navigation and bun for package management with patches applied to SvelteKit.
|
||||
|
||||
## Architecture Layers
|
||||
|
||||
@@ -76,31 +76,31 @@ Export as a named object, then import/aggregate in `src/lib/index.ts`.
|
||||
### Installation & Setup
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
bun install
|
||||
```
|
||||
|
||||
Uses pnpm with SvelteKit patches (see `patches/` directory).
|
||||
Uses bun with SvelteKit patches (see `patches/` directory).
|
||||
|
||||
### Running in Development
|
||||
|
||||
```bash
|
||||
pnpm run start
|
||||
bun start
|
||||
```
|
||||
|
||||
Electron Forge + Vite handles dev server and hot module replacement (HMR). Dev tools open automatically. Main window loads `/login` first.
|
||||
|
||||
### Building & Packaging
|
||||
|
||||
- **Build for production**: `pnpm run package` → outputs to `out/` directory
|
||||
- **Create distributable**: `pnpm run make` → creates installers (configure in `forge.config.ts`)
|
||||
- **Check types & lint**: `pnpm run check` (runs svelte-kit sync + svelte-check)
|
||||
- **Build for production**: `bun run package` → outputs to `out/` directory
|
||||
- **Create distributable**: `bun run make` → creates installers (configure in `forge.config.ts`)
|
||||
- **Check types & lint**: `bun run check` (runs svelte-kit sync + svelte-check)
|
||||
|
||||
### Testing
|
||||
|
||||
#### Unit Tests (Vitest)
|
||||
|
||||
```bash
|
||||
pnpm run test:unit
|
||||
bun run test:unit
|
||||
```
|
||||
|
||||
- Client tests: `src/**/*.svelte.{test,spec}.{js,ts}` (jsdom environment)
|
||||
@@ -110,7 +110,7 @@ pnpm run test:unit
|
||||
#### E2E Tests (Playwright)
|
||||
|
||||
```bash
|
||||
pnpm run test:e2e
|
||||
bun run test:e2e
|
||||
```
|
||||
|
||||
- Tests in `e2e/` directory
|
||||
@@ -119,7 +119,7 @@ pnpm run test:e2e
|
||||
#### Run All Tests
|
||||
|
||||
```bash
|
||||
pnpm run test
|
||||
bun run test
|
||||
```
|
||||
|
||||
Runs unit tests first, then e2e.
|
||||
|
||||
@@ -39,22 +39,14 @@ jobs:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: latest
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
- name: Install bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
run: bun install --frozen-lockfile
|
||||
|
||||
- name: Build macOS distributables
|
||||
run: pnpm run make:macos
|
||||
run: bun run make:macos
|
||||
|
||||
- name: Upload macOS artifacts to release
|
||||
uses: softprops/action-gh-release@v2
|
||||
@@ -72,22 +64,14 @@ jobs:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: latest
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
- name: Install bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
run: bun install --frozen-lockfile
|
||||
|
||||
- name: Build Windows distributables
|
||||
run: pnpm run make -- --platform win32
|
||||
run: bun run make -- --platform win32
|
||||
|
||||
- name: Upload Windows artifacts to release
|
||||
uses: softprops/action-gh-release@v2
|
||||
|
||||
@@ -26,3 +26,4 @@ vite.config.ts.timestamp-*
|
||||
|
||||
out
|
||||
tailwindcss-*.log
|
||||
pnpm-lock.yaml
|
||||
|
||||
+4
-5
@@ -1,16 +1,15 @@
|
||||
FROM node:22-alpine AS base
|
||||
FROM oven/bun:latest AS base
|
||||
|
||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||
WORKDIR /app
|
||||
|
||||
# Install dependencies
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
COPY package.json bun.lock ./
|
||||
COPY patches ./patches
|
||||
RUN pnpm install --frozen-lockfile
|
||||
RUN bun install --frozen-lockfile
|
||||
|
||||
# Build the SvelteKit app with adapter-node
|
||||
COPY . .
|
||||
RUN pnpm run build:server
|
||||
RUN bun run build:server
|
||||
|
||||
# Production image
|
||||
FROM node:22-alpine AS production
|
||||
|
||||
@@ -27,20 +27,20 @@ libraries like [Shadcn-Svelte](https://next.shadcn-svelte.com/).
|
||||
## Getting Started
|
||||
|
||||
> [!WARNING]
|
||||
> This project uses [`pnpm`](https://pnpm.io/) and uses [patching](https://pnpm.io/cli/patch) to work
|
||||
> This project uses [`bun`](https://bun.sh/) and uses [patching](https://bun.sh/docs/install/patch) to work
|
||||
> around some issues with SvelteKit. When this [PR](https://github.com/sveltejs/kit/pull/13812) merges,
|
||||
> you can remove the patching and use the latest version of SvelteKit.
|
||||
|
||||
Start by installing the dependencies:
|
||||
|
||||
```
|
||||
pnpm install
|
||||
bun install
|
||||
```
|
||||
|
||||
**Development:**
|
||||
|
||||
```
|
||||
pnpm run start
|
||||
bun start
|
||||
```
|
||||
|
||||
[Electron Forge](https://www.electronforge.io/) with the [Vite plugin](https://www.electronforge.io/plugins/vite)
|
||||
@@ -50,7 +50,7 @@ will take care of running the development server and building the app for you. Y
|
||||
**Production:**
|
||||
|
||||
```
|
||||
pnpm run package
|
||||
bun run package
|
||||
```
|
||||
|
||||
This will build the app and you can find the output in the `out` directory. You can run the production
|
||||
@@ -60,7 +60,7 @@ for distribution though.
|
||||
To create a distributable installer, you can use:
|
||||
|
||||
```
|
||||
pnpm run make
|
||||
bun run make
|
||||
```
|
||||
|
||||
This will create a distributable installer for your app. You can configure this in the `makers` section
|
||||
|
||||
+6
-8
@@ -15,7 +15,7 @@
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||
"test:unit": "vitest",
|
||||
"test": "npm run test:unit -- --run && npm run test:e2e",
|
||||
"test": "bun run test:unit -- --run && bun run test:e2e",
|
||||
"test:e2e": "playwright test",
|
||||
"start": "electron-forge start",
|
||||
"package": "electron-forge package",
|
||||
@@ -62,13 +62,11 @@
|
||||
"electron-squirrel-startup": "^1.0.1",
|
||||
"socket.io-client": "^4.8.3"
|
||||
},
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": [
|
||||
"esbuild",
|
||||
"electron",
|
||||
"electron-winstaller"
|
||||
]
|
||||
},
|
||||
"trustedDependencies": [
|
||||
"esbuild",
|
||||
"electron",
|
||||
"electron-winstaller"
|
||||
],
|
||||
"patchedDependencies": {
|
||||
"@sveltejs/kit": "patches/@sveltejs__kit.patch"
|
||||
}
|
||||
|
||||
Generated
-6284
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user