当前位置: 首页 > 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.lqws.cn/news/543961.html

相关文章:

  • 【CMake基础入门教程】第八课:构建并导出可复用的 CMake 库(支持 find_package() 查找)
  • 视觉疲劳检测如何优化智能驾驶的险情管理
  • Java练习题精选16-20
  • C++01背包问题
  • 汇总表支持表头分组,查询组件查询框可以调整高度,DataEase开源BI工具v2.10.11 LTS版本发布
  • ESP32 008 MicroPython Web框架库 Microdot 实现的网络文件服务器
  • A Machine Learning Approach for Non-blind Image Deconvolution论文阅读
  • 金蝶云星空客户端自定义控件插件-WPF实现自定义控件
  • 电磁波是如何传递信息的?
  • 鸿蒙 List 组件解析:从基础列表到高性能界面开发指南
  • 前端 E2E 测试实践:打造稳定 Web 应用的利器!
  • 海外 AI 部署:中国出海企业如何选择稳定、安全的云 GPU 基础设施?
  • 扬州搓澡非遗解码:三把刀文化的“水包皮“
  • 010 【入门】链表入门题目-合并两个有序链表
  • Linux驱动学习day9(异常与中断处理)
  • 华为云Flexus+DeepSeek征文|基于Dify构建故事绘本制作工作流
  • Spark 写入hive表解析
  • Spring Boot项目开发实战销售管理系统——系统设计!
  • 知名流体控制解决方案供应商“永盛科技”与商派ShopeX达成B2B商城项目合作
  • iOS 远程调试与离线排查实战:构建非现场问题复现机制
  • 报道称CoreWeave洽谈收购Core Scientific,后者涨超30%
  • NV025NV033美光固态闪存NV038NV040
  • 《二分枚举答案(配合数据结构)》题集
  • Python Selenium 滚动到特定元素
  • Selenium基本用法
  • Spring Boot 性能优化与最佳实践
  • 6.27_JAVA_面试(被抽到了)
  • 洛谷P5021 [NOIP 2018 提高组] 赛道修建
  • 深入理解 Linux `poll` 模型:`select` 的增强版
  • 记录一次飞书文档转md嵌入vitepress做静态站点