You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu系统下nvm切换Node至v9.0.0后rush install版本识别异常求助

为啥nvm切了Node版本,rush install还认成12.x?

这种情况我在Ubuntu上也踩过坑,大概率是环境变量、shell会话或者工具缓存的问题,咱们一步步来排查解决:

1. 当前Shell没刷新环境变量

nvm切换版本后,新的Node路径是通过修改环境变量生效的,但如果刚切完就跑rush,有时候环境变量还没完全同步;或者你是在旧终端窗口操作,版本切换的配置没加载进来。

  • 解决办法:在当前终端执行 source ~/.nvm/nvm.sh 刷新环境变量,然后再跑 rush install;或者干脆关掉当前终端,重新开一个新窗口再操作,新窗口会自动加载nvm的最新配置。

2. 系统全局Node版本优先级更高

Ubuntu默认可能自带Node,或者你之前用apt装过全局的Node 12.x。如果nvm的版本路径在系统全局路径之后,shell就会优先调用全局的Node,导致rush识别错版本。

  • 先排查:执行 which node,看输出的路径是不是nvm的目录(比如~/.nvm/versions/node/v9.0.0/bin/node)。如果输出是/usr/bin/node这种系统路径,那就是全局版本抢了优先级。
  • 解决办法:
    • 临时调整PATH:执行 export PATH=~/.nvm/versions/node/v9.0.0/bin:$PATH,把nvm的路径放到最前面,再跑rush;
    • 彻底解决:卸载系统全局的Node,执行 sudo apt remove nodejs,之后nvm的版本就会成为默认选项。

3. Rush缓存了旧的环境信息

Rush有时候会缓存环境检测的结果,哪怕你切换了Node版本,它还是抱着旧缓存不放。

  • 解决办法:执行 rush purge 清理Rush的缓存,然后再重新运行 rush install

4. 项目配置硬指定了Node版本

检查下项目根目录的.rush.json配置文件,看看有没有强制指定Node版本为12.x的设置。有些项目会在配置里锁死Node版本范围,哪怕你本地切了版本也没用。

  • 排查:打开.rush.json,搜索nodeVersion相关字段,如果看到设置成了12.x之类的,改成你需要的范围(比如>=9.0.0 <11.0.0)再试试。

内容的提问来源于stack exchange,提问作者ColoradoStudent

火山引擎 最新活动