NVM学习笔记

NVM学习笔记


本博客背景:突然有一天,遇到一个需求,需要将前端页面的两个英文逗号改成中文逗号。问题来了,项目是前后端分离开发的,前端使用Vue,前端大佬开发完部署上线后已经离开,而自己本身主要研究后端开发,不怎么熟悉前端。没办法,只能硬着头皮上。还好前端大佬代码风格很好,很快就能大概读懂源码,很快找到需要修改的地方改好。但更大的问题来了,Vue源码修改后需要使用npm进行编译打包。

只能继续往下走,搭建Node环境。

接着查阅了资料,在中文官网(http://nodejs.cn/)看到有免安装绿色版,即Windows 二进制文件 (.zip),个人比较喜欢这类软件,于是选择了这种方式(也正是因为这种方式,遇到重重问题)。但是,在公司电脑安装时,即使是配置好了path、淘宝源和全局变量等,但是仍没能搭建起来。执行npm时总是输出下面几行,而且npm install命令经常失败。

npm -v
openssl config failed: error:02001003:system library:fopen:No such process
openssl config failed: error:02001003:system library:fopen:No such process

于是向朋友了解到了NVM这种方式安装,也意识到用NVM对Node多版本进行管理是非常明智的,于是打算安装NVM来安装和管理Node,使用这种方式来搭建环境。

搭建的过程并非一帆风顺,首先在虚拟机上先试一下搭建(个人习惯,安装软件会先在虚拟机上试一下),比较顺利,很快成功了;第二次在家里物理机上搭建,遇到一些小困难,不过还是成功了;最后一次在公司电脑上搭建,遇到很多困难,幸运最后也成功了。

于是该文章也应运而生了。

一、环境搭建(使用绿色免安装版本)

(一)正常情况(安装Node.js版本是v10.6.0)

1、下载nvm包,并解压

(1)从Github上下载,但会很慢。网址为:https://github.com/coreybutler/nvm-windows/releases

(2)从百度网盘上找资源下载,稍微快点。

(3)版本说明
在这里插入图片描述

nvm-noinstall.zip: 绿色免安装版本,但需要配置才能使用
nvm-setup.zip:安装版本,下载之后点击安装,无需配置就可以使用。
Source code(zip):zip压缩的源码。
Sourc code(tar.gz):tar.gz的源码,一般用于Linux系统。
2、配置setting.txt,如果没有则新建,添加如下内容:

将nvm-noinstall.zip解压缩到指定文件夹,改名为nvm。如本人解压到:D:\davesoftware\nvm

接着进入该安装目录,新建和配置setting.txt文件,如下所示:

root: D:\davesoftware\nvm
path: D:\davesoftware\nodejs
arch: 64
proxy: none
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

说明:

root:可以配置nvm安装路径。后面安装的不同版本Node会默认安装到配置的目录下。当然,如果不配置,也是会默认安装到nvm的安装路径的。
path:nodejs安装路径。这个貌似一个链接,会链接到nvm use命令指定版本的Node根目录。
arch:设置当前系统的位数和当前nodejs的位数
proxy:设置代理
node_mirror:node镜像源
npm_mirror:npm镜像源

(1)root图例说明:如图是在虚拟机上的测试案例:NVM的安装目录为C:\Program Files\nvm,settings.txt文件中却配置了:C:\User\Dave\Desktop\nvm,则后面安装的不同版本的Node都安装到了后者,即settings.txt中配置的root路径。
在这里插入图片描述
(2)path图例说明:如下图,path配置的nodejs成了一个快捷方式。
在这里插入图片描述
如果nvm use 10.6.0指定了版本后,nodejs就指向了版本10.6.0
在这里插入图片描述
如果nvm use 9.0.0指定了版本后,nodejs就指向了版本9.0.0
在这里插入图片描述

3、配置nvm的环境变量

为了能够在任何文件夹路径下使用nvm命令,接下来需要到系统的环境变量中,配置两个变量,如下所示:

NVM_HOME = D:\davesoftware\nvm
NVM_SYMLINK = D:\davesoftware\nodejs

在电脑的环境变量中,path属性加入以上两个属性:%NVM_HOME%;%NVM_SYMLINK%

验证:启动cmd,输入

nvm -v
4、下载nodejs

在电脑的环境变量中,配置好path后,然后打开cmd,执行以下命令:

# v10.6.0指版本号
nvm install v10.6.0

# 指定使用该版本的Nodejs
nvm use v10.6.0

# 查看指定使用该版本的Nodejs
nvm on v10.6.0
5、配置node环境变量

安装完nodejs后,也是需要配置环境变量的。步骤如下:

(1)把node的路径加入到系统环境变量中,例如

NODEJS_HOME=D:\davesoftware\nvm\v10.6.0

(2)并在path最前面加入 %NODEJS_HOME%;

(3)验证:重新打开cmd 输入

node -v
npm -v

如果出现版本号则是配置全局npm成功

6、设置npm的源

然后进入Nodejs的安装目录,设置npm的源为淘宝源

# 配置npm的源
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
# 配置全局目录,npm下载的所有插件都会安装到这里。
npm config set prefix "D:\davesoftware\nvm\v10.6.0\node_modules\node_global"
npm config set cache "D:\davesoftware\nvm\v10.6.0\node_modules\node_cache"

# 查看配置列表
npm config list

(1)配置npm的源,图例说明:执行命令后,会在node根目录下新建子目录etc,并在etc目录下新建文件npmrc,配置这两个参数。
在这里插入图片描述
(2)配置prefix,图例说明:

如果不设置,则npm install下载的模块会安装到根目录下的node_modules中
在这里插入图片描述
如果设置了,则会在{prefix}\node_modules下安装,如图1所示,并在{prefix}下安装vue的命令工具,如图2所示。

图1:
在这里插入图片描述

图2:
在这里插入图片描述
(3)npm config list图例说明:
在这里插入图片描述

7、下载vue的工具
npm install -g vue
npm install -g vue-cli
npm install -g webpack

-g参数,则会将vue、vue-cli和webpack这些模块下载安装到npm config set prefix "D:\davesoftware\nvm\v10.6.0\node_modules\node_global"设置的{prefix}\node_modules下,否则会安装到cmd窗口的当前目录下。

8、测试项目

首先,进入任何一个文件夹,打开cmd,运行以下命令:

vue init webpack my-project

接着,根据提示填写信息,或者回车默认

然后,进入构建好的项目my-project,运行以下命令:

# 启动项目,端口为8080
npm run dev

# 打包
npm install
# 
npm run build

# 运行”npm run dev”的时候执行的是build/dev-server.js文件,
# 运行”npm run build”的时候执行的是build/build.js文件。

在浏览器输入http://127.0.0.1:8080,或者,http://localhost:8080

最后,如果看到浏览器出现以下页面,则说明成功
在这里插入图片描述

(二)搭建过程遇到的特殊情况说明

1、在”4、下载nodejs“中

如果发现下载的nodejs目录下的命令为node64.exe,则需要将node64.exe修改为node.exe;否则需要修改

npm.cmd命令中的SET "NODE_EXE=%~dp0\node.exe"。这个在安装v9.0.0的时候就发现,安装的node根目录中,竟然是node64.exe,这样就导致npm命令执行不了,因为npm.cmd代码中的是node.exe。

不过第二次安装时,执行了命令nvm on v10.6.0后,就自动改为了node.exe,不明觉厉。

如下图所示:
在这里插入图片描述
npm.cmd文件内容如下:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)

SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*
2、还是在”4、下载nodejs“中

如果执行nvm install -v10.15.3,即下载的node版本为10.15.3,则会发现,没有npm工具包。
在这里插入图片描述
在这个时候,用了三种方法来解决,第一种是更换版本,如改为v10.6.0。但项目必须用v10.15.3,所以这种PASS了。第二种方法是先将v10.6.0中的npm复制过来,然后执行命令npm install -g npm@6.4.1 升级npm,但是会报错,所以也PASS了。

最后解决的办法是,在Node官网上跳转到阿里云镜像库(https://npm.taobao.org/mirrors/node/v0.10.15/)下载10.15.3的绿色免安装版本压缩包,解压到nvm中settings.txt指定的root文件夹下,改一下文件名,改为v10.15.3,然后打开cmd,执行nvm use 10.15.3

问题解决。

(三)参考

nvm的正确打开姿势

nvm安装踩坑过程

nvm的下载,安装与使用

node管理工具 nvm 下载安装和使用

nvm报错 ERROR open \settings.txt: The system cannot find the file specified

nvm报错 ERROR open \settings.txt: The system cannot find the file specified

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁永辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值