Skip to content

chore: migrate from npm to pnpm#25

Merged
sundancekid73 merged 7 commits into
masterfrom
chore/migrate-to-pnpm
May 12, 2026
Merged

chore: migrate from npm to pnpm#25
sundancekid73 merged 7 commits into
masterfrom
chore/migrate-to-pnpm

Conversation

@sundancekid73
Copy link
Copy Markdown
Collaborator

No description provided.

sundancekid73 and others added 7 commits May 1, 2026 14:19
- Replace package-lock.json with pnpm-lock.yaml (generated via pnpm import)
- Update Dockerfiles to use node:lts-alpine (was pinned to 3.14) with corepack pnpm
- Add pnpm.onlyBuiltDependencies to package.json for native/postinstall packages
- Switch npm install → pnpm install --frozen-lockfile in Docker builds

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
node-sass@9 has no prebuilt binaries for Node 22 (node:lts-alpine)
and requires python3/make/g++ to compile from source on Alpine.
Switching to sass (Dart Sass) avoids the native compilation entirely.

Also replace `corepack prepare pnpm@latest --activate` with
`npm install -g pnpm` which is more reliable in CI Docker builds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
deasync (pulled in by @vue/cli-service) is a native addon that
requires node-gyp to compile. Alpine has no build tools by default,
causing the install to fail with "Could not find any Python installation".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Webpack 4 uses MD4 hashing which relies on OpenSSL legacy algorithms.
Node 17+ (OpenSSL 3) disables these by default, causing
ERR_OSSL_EVP_UNSUPPORTED at build time. Setting --openssl-legacy-provider
restores the required behaviour.

Also fix legacy ENV key value syntax to ENV key=value.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pnpm enforces strict dependency isolation and does not hoist transitive
packages, so lodash (used directly in 4 components) and regenerator-runtime
(injected by the @vue/app Babel preset) must be declared explicitly.
These were phantom dependencies under npm that worked by accident.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pnpm v10 introduced ERR_PNPM_IGNORED_BUILDS which requires explicit
lockfile-level approval of build scripts via `pnpm approve-builds`.
Without a pinned version, `npm install -g pnpm` now installs v10.
Pinning to pnpm@9 restores the previous onlyBuiltDependencies behavior.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: resolve pnpm-related Docker build failures
@sundancekid73 sundancekid73 merged commit dd0c209 into master May 12, 2026
2 checks passed
@sundancekid73 sundancekid73 deleted the chore/migrate-to-pnpm branch May 12, 2026 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant