Skip to content

vp install -g silently skips package lifecycle scripts, breaking script-dependent CLIs #2766

Description

@legibet

Describe the bug

vp install -g does not run package lifecycle scripts. Packages whose bin is produced by postinstall install silently broken: exit 0, the bin shim resolves, the tool errors on first run. There is no warning and no opt-in for global installs.

Reproduced with @opencode/cli 2.0.9 (opencode's v2 docs list a "vite+" install tab claiming no additional flag is needed: anomalyco/opencode#50310):

$ vp --version
vp v0.3.3                 # latest published release
$ vp install -g @opencode/cli
                          # success, no warnings
$ opencode
Error: @opencode/cli's postinstall script was not run.

The installed package keeps a 229-byte placeholder at bin/opencode.exe; the real binary is already present under node_modules/@opencode/cli-darwin-arm64/bin/ — only the postinstall link is missing. Running node postinstall.mjs in the package directory repairs it, until the next vp upgrade re-runs the script-free install. Reproduced twice (fresh install and upgrade).

PR #2336 documents the current state ("vp's own global installs have no scripts", "vp install -g has no --allow-scripts plumbing"), so this reads as a known gap rather than a regression — but I couldn't find an issue tracking the user-visible fallout.

Possible directions: run scripts for global installs (npm parity), or keep skipping them but warn when scripts were skipped and provide an opt-in (--allow-scripts for -g, or a global equivalent of vp pm approve-builds). pnpm's onlyBuiltDependencies plus an install-time warning is a workable precedent for the latter.

Reproduction

No repository — this is global CLI install behavior, reproducible in any directory with the commands below.

Steps to reproduce

  1. Install Vite+ 0.3.3 (latest): curl -fsSL https://vite.plus | bash
  2. vp install -g @opencode/cli — exits 0, no warnings
  3. opencode → Error: @opencode/cli's postinstall script was not run.

System Info

$ vp --version
vp v0.3.3

$ vp env current
Node.js:
  Version    24.21.0
  Source     default
  Bin Path   /Users/legibet/.vite-plus/js_runtime/node/24.21.0/bin/node
  Installed  true
  Mode       managed

Used Package Manager

npm

Logs

No response

Validations

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions