`npm install -g` keeps the `bin` link on the old version after the default Node.js changes
维护者通常 1 天内回复
评估
这个 Issue 还没有评估数据。
描述
Describe the bug
When Vite+ manages Node.js, npm install -g <pkg> installs the package into the prefix of the active Node.js version. Vite+ then links the package binary into ~/.vite-plus/bin/ and records the owner in ~/.vite-plus/bins/<bin>.json.
When the active Node.js version changes (for example, the latest LTS moves from 24 to 26), I run npm install -g <pkg> again to update the package. npm installs a new copy into the new Node.js prefix and reports success. But the link in ~/.vite-plus/bin/ still points to the copy in the old Node.js prefix. Vite+ shows no message. When I run the command, I get the old version.
Expected: the link points to the copy that npm just installed, or Vite+ tells me that it kept the old link.
Cause: in check_npm_global_install_result, Vite+ replaces an existing link only when a different npm package owns it. When the same package owns it, Vite+ skips it, and it does not compare the link target with the new npm bin directory:
Possible fix: also replace the link when the same package owns it but the link target is not in the current npm bin directory. Write the new nodeVersion to the bin config, and print a line such as Relinked 'agent-browser' to Node.js 26.13.0 (was 24.15.0).
I can submit a PR for this fix.
Related: #1986 (general discussion about npm install -g and Node.js version management).
Reproduction
No repository is necessary. This is global CLI behavior. See the steps below.
Steps to reproduce
# 1. Install a package with an older default Node.js version
vp env default 24
npm install -g cowsay # Answer "Y" to create the link
ls -l ~/.vite-plus/bin/cowsay # -> .../js_runtime/node/24.x.y/bin/cowsay
# 2. Change the default Node.js version, then install the package again
vp env default 26
npm install -g cowsay # npm reports success; Vite+ prints nothing
ls -l ~/.vite-plus/bin/cowsay # Still -> .../node/24.x.y/bin/cowsay
cat ~/.vite-plus/bins/cowsay.json # "nodeVersion" is still 24.x.y
# The new copy exists, but the link does not use it
ls ~/.vite-plus/js_runtime/node/26.*/lib/node_modules/cowsay
Workaround: remove the link (rm ~/.vite-plus/bin/cowsay), then run npm install -g cowsay again; or run vp install -g instead of npm install -g.
On my machine, 7 links point to old Node.js versions (24.15.0, 24.18.0, 24.21.0), while the active version is 26.13.0.
System Info
$ vp env current
Environment:
Version 26.13.0
Source lts
Tool Paths:
node /Users/user/.vite-plus/js_runtime/node/26.13.0/bin/node
npm /Users/user/.vite-plus/js_runtime/node/26.13.0/bin/npm
npx /Users/user/.vite-plus/js_runtime/node/26.13.0/bin/npx
$ vp --version
vp v0.2.1
Local vite-plus:
vite-plus Not found
Environment:
Package manager Not found
Node.js v26.13.0
macOS, npm 10.9.9. The code at the link above is from current main (7073d613), so the bug is also on main.
Used Package Manager
npm
- 主要语言
- Rust
- 星标
- 6.5k
- 派生
- 296
- 平均合并
- 1 天 2 小时
- 30 天内合并 PR
- 230
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
voidzero-dev/vite-plus 的其他 Issue
-
pending triage
难度 2/5 1-3 小时 新手友好度 63/100
voidzero-dev/vite-plus#3235 ·
维护者通常 1 天内回复
-
Docker guide: the runtime stage needs libatomic1 for Node.js 25 and later可能已有人在做 @kshanxs 于 5 天前认领。 未关闭documentation
难度 2/5 1-3 小时 新手友好度 84/100
voidzero-dev/vite-plus#3219 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
pending triage
难度 2/5 1-3 小时 新手友好度 72/100
voidzero-dev/vite-plus#2882 · 2 条评论 ·
维护者通常 1 天内回复
-
`vp create` doesn't rewrite `vite` imports when adding a third-party template to a monorepo可能已有人在做 @voidzero-bot 今天认领。 未关闭- P2: has workaround pending triage triage: fix verified
难度 3/5 1-2 天 新手友好度 35/100
voidzero-dev/vite-plus#3281 · 1 条评论 ·
维护者通常 1 天内回复
-
triage: not actionable
难度 5/5 一周以上 新手友好度 15/100
voidzero-dev/vite-plus#3277 · 1 条评论 · 3 个 reaction ·
维护者通常 1 天内回复
查看 voidzero-dev/vite-plus 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
compiler P4 perf
难度 2/5 1-3 小时 新手友好度 78/100
HerringtonDarkholme/hd-lang#1044 ·
维护者通常 1 天内回复
-
good first issue help wanted r-docs
难度 2/5 1-3 小时 新手友好度 72/100
servo/rust-smallvec#824 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 90/100
akitaonrails/ai-usagebar#552 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100