zoukankan      html  css  js  c++  java
  • Windows上安装NVM之后找不到NPM的解决办法

      不久前自己工作的电脑上Node.js升级了,导致有一个依赖的项目无法正常启动,于是到Google上搜了一把,找到stackoverflow上的一个解决办法。基本意思是说当前的Node.js版本和gulp 3不兼容,要么将gulp升级到4,要么将Node.js降回到原来的版本。于是忽然想到之前在Ubuntu上安装过NVM,Windows上应该也有对应的版本,于是在github上搜了一下,果然有专门针对Windows的版本

      下载安装后,可以直接通过NVM命令在同一台电脑上安装多个不同版本的Node.js,而且可以随意切换版本。

      但是通过nvm use命令使用指定的Node.js版本之后,发现无法使用npm命令。

      按照错误描述,应该是在对应的目录中没有找到npm-cli.js这个文件。于是去NVM的安装路径下(通常为c:users<your user>AppDataRoaming vm)查看了一下。

      NVM将所有安装的Node.js的不同版本存放在这个目录下,当使用nvm use命令时,会将对应版本的Node.js目录中的内容拷贝到C:Program Files odejs目录中,从而达到切换不同Node.js版本的目的。但是这个目录下的node_modules目录是空的!怎么回事?

      通过搜索,我找到在github上的nvm-windows的issues中也有人在问同样的问题。基本意思就是说npm的仓库已经从https://github.com/npm/npm移到https://github.com/npm/cli了,但是NVM v1.1.7并没有做相应的调整,所以通过nvm install安装Node.js时对应的npm实际上并没有安装成功,不过NVM此时并没有报告任何错误,而是仍然显示已安装成功。

      既然这是NVM自身的问题,那我们只能通过手动的方法来修复。从Node.js官网下载对应版本的压缩包,将其中node_modules目录下的内容拷贝到NVM目录下对应Node.js安装目录中的node_modules中。如果NVM目录下有多个Node.js版本,则需要手动拷贝每个Node.js版本中node_modules目录的内容。

      如https://nodejs.org/download/release/v11.15.0/是Node.js v11.15.0版本的下载地址。下载之后打开压缩包,将其中的node_modules/npm目录解压并拷贝到NVM目录下对应Node.js下的node_modules目录中。

      再次使用nvm use命令切换不同版本的Node.js,然后在命令行通过node -v查看当前Node.js版本,同时输入npm看看该命令是否有效。

  • 相关阅读:
    CoreJava逻辑思维-顺时针打印自定义矩阵
    微信公众号开发引言
    .Net自动更新程序GeneralUpdate,适用于wpf,winfrom,控制台应用
    .net技术栈转型心路历程分享
    TCP/IP网络编程之数据包协议
    TCP/IP网络编程之字节序和网络字节序
    TCP/IP网络编程之socket交互流程
    Linux入门笔记
    WPF新手快速入门系列 3.MVVM
    WPF新手快速入门系列 2.绑定
  • 原文地址:https://www.cnblogs.com/jaxu/p/13904018.html
Copyright © 2011-2022 走看看