早上打算写点东西的,但是用hexo创建文件失败了,继而发现npm命令用不了了,很奇怪的问题,可以使用node -v查看node的版本,但是npm用不了,然后就查了很多,最后把node删除重装了下,下面记录一下npde和npm的相关性和如何使用。
首先说说这两个是什么东西
node.js
Node.js 是一个 Javascript 运行环境(runtime environment),不是一个 js 文件
Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境,是用 C++ 写的
Node.js 不是库,是一个运行环境,或者说是一个 JS 语言解释器
npm(Node Package Manager)
npm是nodejs的包管理器(package manager)
nodejs中含有npm,比如说你安装好nodejs,你打开cmd输入npm -v会发现出啊线npm的版本号,说明npm已经安装好。
卸载node.js
因为npm用不了的原因,我还是选择了卸载node,下面是网上找到的一些步骤
从卸载程序卸载程序和功能,也可以直接右键node.js的安装包并选择卸载。
从下列的目录中找到相关的内容并删除掉:
C:\Program Files (x86)\nodejs
C:\Program Files\nodejs
C:\Users{User}\AppData\Roaming\npm(或%appdata%\npm)
C:\Users{User}\AppData\Roaming\npm-cache(或%appdata%\npm-cache)重新启动(或者重新启动任务管理器杀死所有与节点相关的进程)。
检查%PATH%环境变量以确保没有引用Nodejs或npm存在。 重新启动电脑。
安装nvm-windows并使用
安装
在Linux上我一直使用nvm来管理nodejs的不同版本,但是nvm没有windows版本,所以这是一个适用于 Windows 的 node.js 版本管理实用程序。
- nvm-noinstall.zip: 这个是绿色免安装版本,但是使用之前需要配置
- nvm-setup.zip:这是一个安装包,下载之后点击安装,无需配置就可以使用,方便。
- Source code(zip):zip压缩的源码
- Sourc code(tar.gz):tar.gz的源码,一般用于*nix系统
我们安装nvm-setup.zip,下载好后,双击nvm-setup.exe安装,安装时nvm和nodejs目录必须填不包含空格的路径,我使用的是D:\develope_tools
,注意这里没有空格
使用
安装好后:
1 | nvm version |
如果是第一次安装,使用该命令结果如下:
1 | nvm list |
查看可以安装的nodejs版本
1 | nvm list available |
安装指定版本的node
这里我一开始安装的是一个比较新的版本17.7.0,后来发现还是会有冲突,我打开的前端项目也是无法使用npm的。
安装命令:
1 | nvm install 17.7.0 |
这里可以配置下代理会下载快一点,可以在命令行输入,下面的代理端口根据自己本地的进行设置。
set https_proxy=http://127.0.0.1:1082
查看已安装的版本
1 | nvm ls |
使用指定版本的node
1 | nvm use 13.14.0 |
删除指定版本的node
1 | nvm uninstall 17.7.0 |
注意的问题
环境变量
在node安装完成时,环境变量会自动的添加,环境变量中会有如下两个变量
前端项目使用npm报错
npm ERR! code 1
npm ERR! path D:…\node-sass
npm ERR! command failed
项目在运行npm install之后报了这样的错误
网上搜索到说是版本的问题,可能是node.js的版本和node-sass的版本不合
解决方法
更改自己的node.js的版本,下一个符合node-sass版本的node.js
查看需要的node-sass的版本
可以在https://www.npmjs.com/package/node-sass上查询
到这里问题就发现了,我开始安装的node版本是17的版本,对应的node-sass的版本应该是7.0+
然后我去项目中的package.json文件中发现node-sass的版本是4.13.1
1 | "node-sass": "4.13.1", |
然后只需要去更换一下node的版本为13的就可以了