build(deps): update pnpm to v11.1.2 and enforce workspace settings

Upgrade pnpm version to 11.1.2 across Dockerfile, workflows, and package.json.
Add pnpm-workspace.yaml to enable workspace features. Update all docs-related
scripts and CI jobs to use --ignore-workspace for isolated docs-site installs.
Set packageManager field in package.json for explicit version control.

This ensures consistent dependency management and prepares for multi-package
workspace support.
This commit is contained in:
Richard R 2026-05-14 14:25:29 -06:00
parent 80f9386a6c
commit 288af0f370
7 changed files with 34 additions and 31 deletions

View file

@ -21,7 +21,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
version: 11
- name: Setup Node.js
uses: actions/setup-node@v4
@ -31,7 +31,7 @@ jobs:
cache-dependency-path: docs-site/pnpm-lock.yaml
- name: Install docs dependencies
run: pnpm --dir docs-site install --frozen-lockfile
run: pnpm --ignore-workspace --dir docs-site install --frozen-lockfile
- name: Build docs
run: pnpm --dir docs-site build
run: pnpm --ignore-workspace --dir docs-site build

View file

@ -39,7 +39,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
version: 11
- name: Setup Node.js
uses: actions/setup-node@v4
@ -49,7 +49,7 @@ jobs:
cache-dependency-path: docs-site/pnpm-lock.yaml
- name: Install docs dependencies
run: pnpm --dir docs-site install --frozen-lockfile
run: pnpm --ignore-workspace --dir docs-site install --frozen-lockfile
- name: Build changelog feed
env:
@ -59,7 +59,7 @@ jobs:
run: node scripts/build-changelog-feed.mjs
- name: Build docs
run: pnpm --dir docs-site build
run: pnpm --ignore-workspace --dir docs-site build
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3

View file

@ -32,7 +32,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
version: 11
- name: Setup Node.js
uses: actions/setup-node@v4
@ -42,7 +42,7 @@ jobs:
cache-dependency-path: docs-site/pnpm-lock.yaml
- name: Install docs dependencies
run: pnpm --dir docs-site install --frozen-lockfile
run: pnpm --ignore-workspace --dir docs-site install --frozen-lockfile
- name: Snapshot docs version
env:
@ -52,11 +52,11 @@ jobs:
if [ -f docs-site/versions.json ] && grep -q "\"${VERSION}\"" docs-site/versions.json; then
echo "Version ${VERSION} already exists in versions.json; skipping docs:version"
else
pnpm --dir docs-site docusaurus docs:version "${VERSION}"
pnpm --ignore-workspace --dir docs-site docusaurus docs:version "${VERSION}"
fi
- name: Build docs
run: pnpm --dir docs-site build
run: pnpm --ignore-workspace --dir docs-site build
- name: Commit docs snapshot
id: commit_snapshot

View file

@ -20,7 +20,7 @@ jobs:
node-version: lts/*
- uses: pnpm/action-setup@v4
with:
version: 9
version: 11
- name: Install system dependencies
run: |
sudo apt-get update

View file

@ -24,7 +24,7 @@ RUN cp "$(command -v weed)" /tmp/weed && \
FROM node:lts-alpine AS app-builder
# Install pnpm globally
RUN npm install -g pnpm
RUN npm install -g pnpm@11.1.2
# Create app directory
WORKDIR /app
@ -60,7 +60,7 @@ FROM node:lts-alpine AS runner
RUN apk add --no-cache ca-certificates libreoffice-writer
# Install pnpm globally for running the app
RUN npm install -g pnpm
RUN npm install -g pnpm@11.1.2
# App runtime directory
WORKDIR /app

View file

@ -2,6 +2,7 @@
"name": "openreader",
"version": "3.0.0",
"private": true,
"packageManager": "pnpm@11.1.2",
"scripts": {
"dev": "node scripts/openreader-entrypoint.mjs -- pnpm dev:raw",
"dev:raw": "next dev --turbopack -p 3003",
@ -14,12 +15,12 @@
"migrate-fs": "node scripts/migrate-fs-v2.mjs",
"migrate-fs:dry-run": "node scripts/migrate-fs-v2.mjs --dry-run true",
"generate": "node drizzle/scripts/generate.mjs",
"docs:init": "pnpm --dir docs-site install",
"docs:dev": "pnpm --dir docs-site start",
"docs:build": "pnpm --dir docs-site build",
"docs:serve": "pnpm --dir docs-site serve",
"docs:version": "pnpm --dir docs-site docusaurus docs:version",
"docs:clear": "pnpm --dir docs-site clear"
"docs:init": "pnpm --ignore-workspace --dir docs-site install",
"docs:dev": "pnpm --ignore-workspace --dir docs-site start",
"docs:build": "pnpm --ignore-workspace --dir docs-site build",
"docs:serve": "pnpm --ignore-workspace --dir docs-site serve",
"docs:version": "pnpm --ignore-workspace --dir docs-site docusaurus docs:version",
"docs:clear": "pnpm --ignore-workspace --dir docs-site clear"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.987.0",
@ -79,17 +80,5 @@
"postcss": "^8.5.6",
"tailwindcss": "^3.4.19",
"typescript": "^5.9.3"
},
"pnpm": {
"onlyBuiltDependencies": [
"@napi-rs/canvas",
"better-sqlite3",
"ffmpeg-static"
],
"overrides": {
"lodash": "^4.17.23",
"@xmldom/xmldom": "^0.9.8",
"@types/localforage": "npm:empty-module@0.0.2"
}
}
}

14
pnpm-workspace.yaml Normal file
View file

@ -0,0 +1,14 @@
packages:
- .
strictDepBuilds: false
allowBuilds:
'@napi-rs/canvas': true
better-sqlite3: true
ffmpeg-static: true
overrides:
lodash: ^4.17.23
'@xmldom/xmldom': ^0.9.8
'@types/localforage': npm:empty-module@0.0.2