Vendored pnpm deployments
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- go, node.js
- Área
- build-system
Línea de trabajo
Start in src/nodejs/supply/supply.go, especially BuildDependencies(), the PNPM interface, and the package-manager selection cases. Compare the existing NPM.Rebuild() implementation in src/nodejs/npm/npm.go; then inspect the supply tests for vendored and pnpm behavior. Done means a vendored pnpm deployment invokes pnpm rebuild rather than pnpm install.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Vendored pnpm deployments run pnpm install instead of pnpm rebuild
Summary
Since v1.9.5 pnpm is officially supported (big thanks) but pnpm projects with a pre-populated node_modules/ (vendored deployments) incorrectly run pnpm install --no-frozen-lockfile instead of pnpm rebuild.
There are two distinct bugs in BuildDependencies().
Bug 1 — case s.UsePNPM has priority over case s.IsVendored
switch {
case s.UseYarn: // L343
s.Yarn.Build(...)
case s.UsePNPM: // L348 ← matched first, PNPM.Build() runs
s.PNPM.Build(...)
case s.IsVendored: // L353 ← never reached when pnpm-lock.yaml is present
s.NPM.Rebuild(...)
...
}
When both flags are set:
s.UsePNPM = true—pnpm-lock.yamlexistss.IsVendored = true—node_modules/exists
PNPM.Build() runs pnpm install, ignoring the pre-populated node_modules/.
Bug 2 — case s.IsVendored hardcodes NPM.Rebuild() regardless of package manager
Even if the ordering were fixed, case s.IsVendored at
supply.go#L353
always calls s.NPM.Rebuild(). A vendored pnpm project should call PNPM.Rebuild(),
which would also require adding Rebuild(string) error to the
PNPM interface at L51–L53
(today only Build(string, string) error exists),
mirroring npm/npm.go#L34–L51.
The same gap likely exists for Yarn vendored deployments.
Use case
We use pnpm deploy --prod to produce a flat node_modules/ layout compatible with the CF buildpack, then push the archive.
The buildpack should detect the pre-populated node_modules/ and skip the install phase, running pnpm rebuild instead to recompile any native addons for the CF stack.
How to reproduce
- Create a minimal pnpm workspace with a
pnpm-lock.yamland a pre-populatednode_modules/. - Run the buildpack supply step.
- Expected:
pnpm rebuildis called. - Actual:
pnpm install --no-frozen-lockfileis called.
- Lenguaje dominante
- Go
- Estrellas
- 173
- Forks
- 389
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 13
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cloudfoundry/nodejs-buildpack
-
unscheduled
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
cloudfoundry/nodejs-buildpack#683 ·
Los mantenedores suelen responder en 1 día
-
BDSA-2025-12492 CVE-2025-8869Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
cloudfoundry/nodejs-buildpack#923 ·
Los mantenedores suelen responder en 1 día
-
Misleading "PRO TIP" about missing "package-lock.json" (with `npm-shrinkwrap.json`)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
cloudfoundry/nodejs-buildpack#852 ·
Los mantenedores suelen responder en 1 día
-
unscheduled
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
cloudfoundry/nodejs-buildpack#655 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Supply step do not retry when error is connection reset by peerPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertounscheduled
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
cloudfoundry/nodejs-buildpack#626 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de cloudfoundry/nodejs-buildpack
Issues similares
-
Named Tuple element with a space in its name fails to parsePosiblemente ocupada @spicysharkco la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ClickHouse/clickhouse-go#2073 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
ci: nothing regenerates the Go contract types, so a hand-edit to types.gen.go passesPosiblemente ocupada @shaiknoorullah la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
shaiknoorullah/hg-mono#993 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
type:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
CarlosDanielDev/aiacc#78 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100