关于node安装和nvm安装的问题
node
1.已经自定义路径安装了node,但是在cmd输入node -v显示不是内部命令
- 路径问题:确保 Node.js 已经被添加到了系统的环境变量 PATH 中。PATH 环境变量包含了操作系统用来查找命令的位置。你可以通过以下步骤检查 Node.js 是否已被添加到 PATH:
- 在 Windows 上,打开命令提示符,输入
echo %PATH%
并回车。你应该能在输出中看到 Node.js 的安装目录,通常是类似C:\Program Files\nodejs
这样的路径。- 在 Linux 或 macOS 上,打开终端,输入
echo $PATH
并回车。同样,你应该能看到 Node.js 的安装目录。如果你没有看到 Node.js 的安装目录,你需要将其添加到 PATH 中。具体的操作取决于你的操作系统和 shell,但通常包括修改
.bashrc
、.zshrc
或者.profile
文件,或者通过系统设置面板来添加环境变量。多个版本的 Node.js 共存:如果你同时安装了多个版本的 Node.js,你可能需要使用 nvm 或 nodist 等工具来管理它们。这些工具可以帮助你在不同的版本之间切换,并确保正确的版本出现在 PATH 中。
Node.js 安装损坏:有时,Node.js 可能会因为各种原因而损坏。在这种情况下,你可能需要卸载现有的 Node.js 版本,然后再重新安装。
最直接的方法就是选择卸载重装
nvm
nvm 安装的node存放在哪个目录
NVM (Node Version Manager) 是一个 Node.js 版本管理器,它允许你在不同版本的 Node.js 之间切换,并且每次安装 Node.js 都是独立的,不会影响到全局的 Node.js 版本。 默认情况下,NVM 将每个安装的 Node.js 版本存储在以下位置:
- Windows:
%AppData%\nvm\versions\node
- macOS/Linux:
~/.nvm/versions/node
这个目录下的每一个子目录都代表一个单独安装的 Node.js 版本。你可以使用
ls ~/.nvm/versions/node
(在 macOS 或 Linux 上)或dir %AppData%\nvm\versions\node
(在 Windows 上)命令查看当前安装的所有 Node.js 版本。 你可以通过 NVM 切换到任何一个已安装的 Node.js 版本,如下所示:nvm use <version>
其中
<version>
是你想使用的 Node.js 版本号。如果你想使用最新版本,可以省略版本号。 如果你只想知道当前正在使用的 Node.js 的版本信息,可以使用nvm version
或node -v
命令。
nvm 安装了node,使用时显示not install
- 首先,检查你是否真的已经安装了那个版本。你可以运行
nvm list
来列出所有可用的 Node.js 版本。如果没有显示你想要的那个版本,那么你需要使用nvm install <version>
命令来安装它。例如,如果你想安装 Node.js v14.17.3 版本,可以运行nvm install 14.17.3
。- 如果你确定已经安装了该版本,但仍然看到 "Not Installed" 错误,那可能是由于 NVM 配置文件有问题。在你的主目录中(通常是
~
或%USERPROFILE%
),你应该有一个.nvm
目录,其中包含一个settings.txt
文件。打开这个文件,并确保其中有node_mirror
和npm_mirror
这两个选项,分别指向一个有效的 Node.js 和 npm 镜像站点。例如,可以设置node_mirror=https://npm.taobao.org/mirrors/node/
和npm_mirror=https://npm.taobao.org/mirrors/npm/
。- 最后,确保你的计算机上的路径变量已设置正确。在 Windows 上,你需要把 NVM bin 目录添加到系统环境变量 PATH 中;在 Linux 或 macOS 上,你需要在 ~/.bashrc 或 ~/.zshrc 文件中添加一行
export PATH="$HOME/.nvm/versions/node/<version>/bin:$PATH"
,其中<version>
替换成你要使用的 Node.js 版本号。
nvm 安装了某个node版本,使用时检查发现没有npm
npm 是随同 Node.js 一起安装的,并且它位于与 Node.js 相同的安装目录下,没有npm此时只能重装该版本的node。
// 卸载指定版本的 Node.js nvm uninstall <version>// 安装最新的 nvm 版本 nvm install node
nvm切换Node.js版本
尽管nvm可以切换Node.js版本,但是不能为每个Node.js版本设置不同的npm版本。当使用nvm切换到某个版本的Node.js时,它只会使用该版本自带的npm版本。如果需要不同版本的npm,可能需要在每个版本中安装对应的npm,但是这非常麻烦。更好的做法是在全局环境下安装所需要的npm版本,并在项目中指定版本。
- 在当前环境中全局安装npm,使用如下命令:
npm install -g npm@version-number
- 在项目中设置npm版本。打开项目的 package.json 文件,添加以下字段:
"engines": {"npm": "version-number" }
nrm
nvm主要用于切换Node.js版本,而nrm则可以更快地下载npm包。
使用nvm切换Node.js版本时,先前设置的npm源可能会受到影响。因为nvm改变了 Node.js 版本,而每个 Node.js 版本默认的npm源可能不同,所以在切换Node.js版本之后,npm源可能会变回原来的源,但是,你可以在.nvmrc文件中设置全局npm源来避免这个问题。在.nvmrc文件中添加一句代码`registry=https://registry.npm.taobao.org`即可设置npm源。同时,nvm也有自己的npm源管理功能,在切换node版本时,npm源也会随之更改。
可以通过以下命令来更改nvm中的npm源:nvm alias default registry https://registry.npm.taobao.org
请注意,每个版本的Node.js都有自己的npm源,并且可能不同,因此,你需要确保全局npm源与Node.js版本对应的npm源是一致的。如果希望使用特定npm源,最好在每个Node.js版本下都使用相应的npm源。
nvm与nrm配合使用的方式如下:
- 首先安装nvm和nrm,具体方式可以参考相关教程。
- 使用nvm切换到某个版本的Node.js,例如 nvm use v14.17.0
- 使用nrm设置npm源,例如 nrm use taobao
- 再次切换回之前使用的Node.js版本,例如 nvm use v14.16.0
- 再次使用nrm设置npm源,例如 nrm use npm
以上操作会在每个版本中设置不同的npm源。注意,当切换到某个Node.js版本时,需要手动设置相应的npm源,除非你在.nvmrc文件中定义了npm源,这样会自动使用nrm配置的源。
注意,如果要在全局范围内设置npm源,可以将nvm设置为.nvmrc文件,如上面所述,但不推荐这么做。建议每个项目单独设置npm源,以保持灵活性和安全性。
nvm和nrm是一个非常好的组合,能够更好地管理Node.js版本和npm源,并避免频繁地切换源带来的困扰。
相关文章:
关于node安装和nvm安装的问题
node 1.已经自定义路径安装了node,但是在cmd输入node -v显示不是内部命令 路径问题:确保 Node.js 已经被添加到了系统的环境变量 PATH 中。PATH 环境变量包含了操作系统用来查找命令的位置。你可以通过以下步骤检查 Node.js 是否已被添加到 PATH&#x…...

react 手机端 rc-table列隐藏(根据相关条件是否隐藏)、实现图片上传操作
最近公司某一项目的手机端,新增需求:table中的附件要可以编辑,并且是在特定条件下可编辑,其他仅做展示效果。 查阅官方文档,没有发现是否隐藏这一属性,通过css控制样式感觉也比较麻烦,后面发现可…...
目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】三维重建
目录 前言 几个高频面试题目 “基于RGB-D相机的三维重建"和传统的SFM和SLAM算法有什么区别?...

H110主板搭配魔改QNCW升级小记
最近搬家完毕,翻出来一块闲置已久的qncw,隐约记得是买的主板套装,现在主板早已不知踪影,剩下孤零零一个CPU,一起翻出来一个G3900T亮机CPU,应该是同时代的产物。 qncw百度上一搜,发现参数还行&am…...
Rust8.2 Fearless Concurrency
Rust学习笔记 Rust编程语言入门教程课程笔记 参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community) Lecture 16: Fearless Concurrency 无畏并发 src/main.rs use std::thread; use std::time::Du…...

合并两个有序链表(冒泡排序实现)
实例要求:将两个升序链表合并为一个新的 升序 链表并返回;新链表是通过拼接给定的两个链表的所有节点组成的;实例分析:先拼接两个链表,在使用冒泡排序即可;示例代码: struct ListNode* mergeTwo…...

【iOS】——知乎日报第五周总结
文章目录 一、评论区展开与收缩二、FMDB库实现本地持久化FMDB常用类:FMDB的简单使用: 三、点赞和收藏的持久化 一、评论区展开与收缩 有的评论没有被回复评论或者被回复评论过短,这时就不需要展开全文的按钮,所以首先计算被回复评…...

gRPC 四模式之 双向流RPC模式
双向流RPC模式 在双向流 RPC 模式中,客户端以消息流的形式发送请求到服务器端,服务器端也以消息流的形式进行响应。调用必须由客户端发起,但在此之后,通信完全基于 gRPC 客户端和服务器端的应用程序逻辑。 为什么有了双向流模式…...

五分钟,Docker安装kafka 3.5,kafka-map图形化管理工具
首先确保已经安装docker,如果是windows安装docker,可参考 wsl2安装docker 1、安装zk docker run -d --restartalways -e ALLOW_ANONYMOUS_LOGINyes --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name zookeeper -p 2181:218…...
2023.11.18html中如何使用input/button进行网页跳转
2023.11.18html中如何使用input/button进行网页跳转 在做网页时有时会用元素,有时会用元素进行form表单操作或者网页跳转,但是用bootstrap时两种元素会出现不同的样式,为了样式一致,有时需要使用这两种元素相互实现其常用功能。 …...

java文件压缩加密,使用流的方式
使用net.lingala.zip4j来进行文件加密压缩。 添加依赖net.lingala.zip4j包依赖,这里使用的是最新的包2.11.5版本。 <dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>${zip4j.versi…...

月子会所信息展示服务预约小程序的作用是什么
传统线下门店经营只依赖自然流量咨询或简单的线上付费推广是比较低效的,属于靠“天”吃饭,如今的年轻人学历水平相对较高,接触的事物或接受的思想也更多更广,加之生活水平提升及互联网带来的长期知识赋能,因此在寻找/咨…...

Windows核心编程 静态库与动态库
资源文件 .rc 文件 会被 rc.exe 变成 .res 文件(二进制文件) 在链接时链接进入 .exe 文件 一、如何保护源码 程序编译链接过程 不想让别人拿到源代码,但是想让其使用功能,根据上图观察,把自己生成的obj给对方,对方拿到obj后&…...
【Spring Boot】如何自定义序列化以及反序列器
在我们使用默认的消息转换器,将java的Long类型通过json数据传输到前端JS时,会导致Long类型的精度丢失,这是因为JS处理Long类型数字只能精确到前16位,所以我们可以采用自定义序列化方式将Long类型数据统一转为String字符串…...

6 Redis的慢查询配置原理
1、redis的命令执行流程 redis的慢查询只针对步骤3 默认情况下,慢查询的阈值是10ms...

JAVA小游戏 “拼图”
第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下: package heima; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import …...

Spring 配置
配置文件最主要的目的 : 解决硬编码的问题(代码写死) SpringBoot 的配置文件,有三种格式 1.properties 2.yaml 3.yml(是 yaml 的简写) SpringBoot 只支持三个文件 1.application.properties 2.application.yaml 3.application.yml yaml 和 yml 是一样的,学会一个就行…...

全新酷盒9.0源码:多功能工具箱软件的最新iapp解决方案
全能工具箱软件酷盒:源码提供iapp解决方案,自定义打造个性化体验 酷盒是一款功能丰富的工具箱软件,内置众多实用功能,并实时更新热门功能。该软件还拥有丰富的资源库,用户可以在线畅玩游戏、免费下载音乐等。 我们提…...
aspose.cells java合并多个excel
背景 有需求需要把多个excel合并到一个excel文件里面,之前一直都是用python来处理办公自动化的东西,但是这个需求用python的openxyl库处理基本只能合并数据,样式没办法一比一合并过去,找了很多解决方案都没法实现,所以…...

【每日一题】三个无重叠子数组的最大和
文章目录 Tag题目来源题目解读解题思路方法一:滑动窗口 写在最后 Tag 【滑动窗口】【数组】【2023-11-19】 题目来源 689. 三个无重叠子数组的最大和 题目解读 解题思路 方法一:滑动窗口 单个子数组的最大和 我们先来考虑一个长度为 k 的子数组的最…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...