chore: switch from npm to pnpm (#20)

* chore: switch from npm to pnpm

* fix more references

* fixed some more stragglers

* add missing exec
This commit is contained in:
Arno
2026-04-05 17:22:26 +02:00
committed by GitHub
parent 70809b3d7d
commit 87d56c2171
7 changed files with 3191 additions and 4969 deletions
+3 -3
View File
@@ -36,8 +36,8 @@ Frontend:
```bash ```bash
cd frontend cd frontend
cp env.dev.example .env cp env.dev.example .env
npm install pnpm install
npm run dev pnpm run dev
``` ```
### Running Tests ### Running Tests
@@ -67,7 +67,7 @@ make frontend-browser-install
- Backend: strong typing, async/await, no blocking I/O in async contexts. - Backend: strong typing, async/await, no blocking I/O in async contexts.
- Frontend: strict TypeScript, no `any`. Named exports. Async/await only. - Frontend: strict TypeScript, no `any`. Named exports. Async/await only.
- Use existing design tokens (`primary`, `secondary`, etc.) for colours, not hardcoded values. - Use existing design tokens (`primary`, `secondary`, etc.) for colours, not hardcoded values.
- Run `npm run lint` and `npm run check` in the frontend before submitting. - Run `pnpm run lint` and `pnpm run check` in the frontend before submitting.
## AI-Assisted Contributions ## AI-Assisted Contributions
+12 -3
View File
@@ -5,11 +5,20 @@ FROM node:22.16-alpine AS frontend-build
WORKDIR /app/frontend WORKDIR /app/frontend
COPY frontend/package*.json ./ ENV PNPM_HOME="/pnpm"
RUN npm ci --ignore-scripts ENV PATH="$PNPM_HOME:$PATH"
# Install pnpm
RUN npm install -g pnpm@10.33.0
COPY frontend/package.json ./
COPY frontend/pnpm-lock.yaml ./
COPY frontend/pnpm-workspace.yaml ./
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
COPY frontend/ . COPY frontend/ .
RUN npm run build RUN pnpm run build
## ##
# Stage 2 — Install Python dependencies # Stage 2 — Install Python dependencies
+7 -7
View File
@@ -10,7 +10,7 @@ BACKEND_VENV_PYTHON := $(BACKEND_VENV_DIR)/bin/python
BACKEND_VENV_STAMP := $(BACKEND_VENV_DIR)/.deps-stamp BACKEND_VENV_STAMP := $(BACKEND_VENV_DIR)/.deps-stamp
BACKEND_VIRTUALENV_ZIPAPP := $(BACKEND_DIR)/.virtualenv.pyz BACKEND_VIRTUALENV_ZIPAPP := $(BACKEND_DIR)/.virtualenv.pyz
PYTHON ?= python3 PYTHON ?= python3
NPM ?= npm NPM ?= pnpm
.PHONY: help backend-venv backend-lint backend-test backend-test-audiodb backend-test-audiodb-prewarm backend-test-audiodb-settings backend-test-coverart-audiodb backend-test-audiodb-phase8 backend-test-audiodb-phase9 backend-test-exception-handling backend-test-playlist backend-test-multidisc backend-test-performance backend-test-security backend-test-config-validation backend-test-home backend-test-home-genre backend-test-infra-hardening backend-test-library-pagination backend-test-search-top-result test-audiodb-all frontend-install frontend-build frontend-check frontend-lint frontend-test frontend-test-queuehelpers frontend-test-album-page frontend-test-playlist-detail frontend-test-audiodb-images frontend-browser-install project-map rebuild test check lint ci .PHONY: help backend-venv backend-lint backend-test backend-test-audiodb backend-test-audiodb-prewarm backend-test-audiodb-settings backend-test-coverart-audiodb backend-test-audiodb-phase8 backend-test-audiodb-phase9 backend-test-exception-handling backend-test-playlist backend-test-multidisc backend-test-performance backend-test-security backend-test-config-validation backend-test-home backend-test-home-genre backend-test-infra-hardening backend-test-library-pagination backend-test-search-top-result test-audiodb-all frontend-install frontend-build frontend-check frontend-lint frontend-test frontend-test-queuehelpers frontend-test-album-page frontend-test-playlist-detail frontend-test-audiodb-images frontend-browser-install project-map rebuild test check lint ci
@@ -132,20 +132,20 @@ frontend-test: ## Run the frontend vitest suite
cd "$(FRONTEND_DIR)" && $(NPM) run test cd "$(FRONTEND_DIR)" && $(NPM) run test
frontend-test-queuehelpers: ## Run queue helper regressions frontend-test-queuehelpers: ## Run queue helper regressions
cd "$(FRONTEND_DIR)" && npx vitest run --project server src/lib/player/queueHelpers.spec.ts cd "$(FRONTEND_DIR)" && $(NPM) exec vitest run --project server src/lib/player/queueHelpers.spec.ts
frontend-test-album-page: ## Run the album page browser test frontend-test-album-page: ## Run the album page browser test
cd "$(FRONTEND_DIR)" && npx vitest run --project client src/routes/album/[id]/page.svelte.spec.ts cd "$(FRONTEND_DIR)" && $(NPM) exec vitest run --project client src/routes/album/[id]/page.svelte.spec.ts
frontend-test-playlist-detail: ## Run playlist page browser tests frontend-test-playlist-detail: ## Run playlist page browser tests
cd "$(FRONTEND_DIR)" && npx vitest run --project client src/routes/playlists/[id]/page.svelte.spec.ts cd "$(FRONTEND_DIR)" && $(NPM) exec vitest run --project client src/routes/playlists/[id]/page.svelte.spec.ts
frontend-browser-install: ## Install Playwright Chromium for browser tests frontend-browser-install: ## Install Playwright Chromium for browser tests
cd "$(FRONTEND_DIR)" && npx playwright install chromium cd "$(FRONTEND_DIR)" && $(NPM) exec playwright install chromium
frontend-test-audiodb-images: ## Run AudioDB image tests frontend-test-audiodb-images: ## Run AudioDB image tests
cd "$(FRONTEND_DIR)" && npx vitest run --project server src/lib/utils/imageSuffix.spec.ts cd "$(FRONTEND_DIR)" && $(NPM) exec vitest run --project server src/lib/utils/imageSuffix.spec.ts
cd "$(FRONTEND_DIR)" && npx vitest run --project client src/lib/components/BaseImage.svelte.spec.ts cd "$(FRONTEND_DIR)" && $(NPM) exec vitest run --project client src/lib/components/BaseImage.svelte.spec.ts
project-map: ## Refresh the project map block project-map: ## Refresh the project map block
cd "$(ROOT_DIR)" && $(PYTHON) scripts/gen-project-map.py cd "$(ROOT_DIR)" && $(PYTHON) scripts/gen-project-map.py
-4955
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -14,7 +14,7 @@
"format": "prettier --write .", "format": "prettier --write .",
"lint": "prettier --check . && eslint .", "lint": "prettier --check . && eslint .",
"test:unit": "vitest", "test:unit": "vitest",
"test": "npm run test:unit -- --run" "test": "pnpm run test:unit -- --run"
}, },
"devDependencies": { "devDependencies": {
"@eslint/compat": "^1.4.0", "@eslint/compat": "^1.4.0",
+3165
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
allowBuilds:
'@parcel/watcher': true
esbuild: true