当前位置: 首页 > news >正文

fish安装node.js环境

为什么强调fish shell,因为fish shell的缘故,不能直接执行node.js官网的命令

好的,您遇到了一个非常典型且重要的问题。请仔细阅读我的分析,这能帮您彻底解决问题。

问题诊断

您看到的所有错误,归根结底有两个核心原因:

  1. 您正在使用 Fish Shell:从命令行末尾的 fish: 提示可以看出,您使用的不是 Linux 默认的 bash,而是 fish。Fish Shell 的脚本语法与 bash 不兼容
  2. 错误的加载方式nvm 的标准安装脚本和您执行的加载命令 \. "$HOME/.nvm/nvm.sh" 都是为 bashzsh 设计的。当 Fish 尝试去读取 nvm.sh这个 bash 脚本时,它无法理解其中的语法(比如错误信息里的 Unexpected ')' found),因此加载失败。

加载失败的直接后果就是,nvm 命令在您的 Shell 中根本不存在,所以系统会提示 nvm: command not found

请不要按照系统的建议去用 sudo zypper install nodejs-common,那会绕开我们想要使用的 nvm,导致版本管理混乱。

根本的解决方法

我们需要用“Fish 的方式”来安装和使用 nvm。最推荐的方法是使用一个名为 nvm.fish 的包装器(wrapper),它能让 nvm 完美地在 Fish Shell 中工作。

请按照以下步骤操作,这将一劳永逸地解决您的问题。


操作步骤

第一步:彻底清理旧的、不完整的安装

我们必须先删除之前错误的安装留下的痕迹。

在您的终端里执行以下命令,彻底删除 .nvm 目录:

rm -rf ~/.nvm

然后,检查一下 .bashrc 文件,确保里面没有 nvm 相关的代码(根据日志,它可能被添加过)。

# 这个命令会打开文件,检查并删除包含 "NVM_DIR" 的行,然后保存退出
# 如果您不熟悉 vim,也可以用图形界面的文本编辑器打开 /home/yqh/.bashrc
vim ~/.bashrc 

(进入 vim 后,找到相关行,按 dd 删除,然后按 :wq 保存退出)

第二步:为 Fish 安装插件管理器 fisher

fisher 是 Fish Shell 最流行的插件管理器。如果还没有安装,请用下面这个命令安装:

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
第三步:使用 fisher 安装 nvm.fish

这是最关键的一步。执行以下命令来安装 nvm 的 Fish 包装器:

fisher install jorgebucaran/nvm.fish

安装完成后,请重启您的终端,或者新开一个终端窗口,以确保配置完全生效。

第四步:安装并使用 Node.js

现在,您的 nvm 已经准备就绪,可以正常使用了!

  1. 安装 Node.js v22:

    nvm install 22
    

    您会看到一个下载和安装的进度条。

  2. 验证安装:

    node -v
    npm -v
    nvm current
    

    这次,您应该能看到正确的版本号输出,不再有任何 command not found 的错误。

现在,您的开发环境已经按照最适合 Fish Shell 的方式搭建完毕了。

http://www.lryc.cn/news/575832.html

相关文章:

  • 【开发杂谈】Auto Caption:使用 Electron 和 Python 开发实时字幕显示软件
  • Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory
  • 车联网网络安全渗透测试:深度解析与实践
  • 商品中心—15.库存分桶扣减的技术文档
  • 一款被我拿来处理图片和视频的免费环保软件
  • Web基础关键_003_CSS(一)
  • 小程序学习笔记:加载效果、上拉加载与节流处理
  • Ubuntu安装Docker部署Python Flask Web应用
  • PHP语法基础篇(六):数组
  • 代码随想录|图论|09沉没孤岛
  • LSTM每个变量的shape分析
  • 从输入到路径:AI赋能的地图语义解析与可视化探索之旅
  • 通过ETL从MySQL同步到GaussDB
  • 喜讯 | Mediatom斩获2025第十三届TopDigital创新营销奖「年度程序化广告平台」殊荣
  • LINUX625 DNS反向解析
  • 基于 Spring Boot + Vue 3的现代化社区团购系统
  • 科技如何影响我们的生活?
  • 工业电子 | 什么是SerDes,为何工业和汽车应用需要它?
  • HarmonyOS NEXT仓颉开发语言实战案例:简约音乐播放页
  • 金蝶云星空客户端自定义控件插件-WPF实现自定义控件
  • 使用Docker部署mysql8
  • 社会工程--如何使用对方的语言
  • JDBC入门:Java连接数据库全指南
  • AI辅助编写前端VUE应用流程
  • 树状dp(dfs)(一道挺基础的)
  • Spring Boot 项目问题:while constructing a mapping found duplicate key api
  • 微信小程序封装loading 修改
  • 常见网络安全威胁和防御措施
  • 智能实验室革命:Deepoc大模型驱动全自动化科研新生态
  • HTML简介,初步了解HTML