解决“npm不是内部或外部命令“

  在使用npm的时候,或者是经过npm下载了一些包,使用这些包的时候,有时候会遇到“npm 不是内部或外部命令”,或者“XXX 不是内部或外部命令”。这种状况通常都是因为安装node.js的时候,环境变量没有配置好。这里把如何配置环境变量作个笔记,以供参考。node

  1、安装nodenpm

  npm是nodejs的一个子内容,因此要使用npm,就必定要先安装nodejs。安装方法其实没啥好说的,彻底傻瓜化的,官网上下载安装包,一路next就完了。windows

  安装完了如何判断本身是否安装成功呢?缓存

  你只须要在命令行窗口中输入命令:  工具

node -v    //查看node 的版本号

npm -v   //查看npm的版本号

  只要有输出版本号,就说明你安装成功了。以下图所示:spa

   

  须要注意的是,nodejs的默认安装路径是C:\Program Files\nodejs。可是咱们每每不想把软件都安装到C盘。好比我须要把nodejs安装到F盘,那么除了在安装时要选择本身的安装路径,接下来必定要作必定的配置,由于你的安装目录变了,若是还沿用默认的一些安装的参数,那么就容易出现问题,致使npm或者你下载的包没法使用操作系统

  2、配置命令行

  假设,我把nodejs的安装根目录设置为F:\nodejs。那么,安装完毕后,咱们看到该目录下有这些文件3d

  

  除了这个目录,其实在C盘的另一个目录下,还有一个附带生成的目录【C:\Users\用户名\AppData\Roaming\npm】,这个目录是用来存放你经过npm全局安装的包。好比,若是你经过“npm i nrm -g”全局下载nrm这个工具,那么下载的文件就会被保存到“【C:\Users\用户名\AppData\Roaming\npm】”这个目录下。code

  既然nodejs的安装目录都不想放到C盘,那么经过npm下载的包更不想放在C盘。我但愿统一管理,把npm全局下载的包都保存到nodejs的根目录下,也就是“F:\nodejs”这个路径下。因此咱们就必须作一些响应的设置了。

  第一步,在“F:\nodejs”目录下建立“node_global"和”node_cache"2个子目录。

  

  其中node_cache是做为缓存目录来使用的,node_global就是全局下载文件的目录。

  接下来要作参数设置,不然,默认的仍是往【C:\Users\用户名\AppData\Roaming\npm】这个目录下保存全局下载文件。

  第二步、设置参数,指定全局下载文件的目录

  首先打开命令窗口,而后输入:  

npm config set prefix "F:\nodejs\node_global"
npm config set cache "F:\nodejs\node_cache"

  这一步就完成了。

  第三步、设置windows操做系统全局环境变量

  这里先简单介绍下什么是系统全局环境变量。咱们通常用户还真不多用它,由于咱们绝大多数的用户都是使用windows系统的图形化界面来使用电脑的,不多会用到命令行工具,因此不知道什么是系统环境变量是很正常的一件事情。

  在咱们使用cmd命令窗口时,通常就是要经过一些命令来作一些操做(好像是废话)。当咱们在命令行窗口输入“dir",点击回车就会显示出当前目录的全部内容。为何命令窗口能认识”dir“这个命令呢?缘由是,当咱们在cmd命令窗口输入任何命令,系统首先会在当前目录下去找,有没有这个命令对应的可执行程序,若是有,就执行之;若是没有,系统就会按照windows操做系统的一个叫作”path“的系统环境变量里去寻找已经设置过的目录,这个名为”path“的系统环境变量能够记录一组,也就是N个路径,若是输入的命令不能在当前目录下找到对应的可执行程序,那么就会去”path“这个变量里记录的全部的目录下,依次寻找你输入的命令对应的可执行程序,若是找到了就马上执行。若是path里记录的全部目录下都没有找到,那么就会在命令行下提示你:”XXX 不是内部或外部命令“。

  这下你应该知道环境变量是干什么的了吧。接下来就开始设置,这里以win7系统为例。

  首先,在桌面”计算机“->"属性“,打开以下图所示的界面

  

  而后,按箭头所示,依次点击”高级系统设置“->”高级“->”环境变量“。这时打开系统环境变量设置窗口,以下图所示:

  

  这个窗口分为上下两个部分,上半部分是“用户变量”它只针对当前登陆windows的帐户起做用。下半部分是“系统变量”,对整个操做系统起做用。

  (1)在系统变量这一栏中,点击“新建”按钮,添加一个变量名“NODE_PATH",值为”F:\nodejs\node_global\node_modules“。若是所示:

  

  而后点击肯定,这一步是关键。

  (2)在用户变量这一部分,找到”path“变量,并修改成”F:\nodejs\node_global\“,若是用户变量里没有”path“变量,那么就建立一个。如图所示:

  

  这一步也很是关键,因为咱们前面改变了module的默认路径,这一步若是不设置,那么就会致使输入命令出现“xxx不是内部或外部命令”的错误。

  OK,到这里已经设置好了,你能够开心的使用nodejs,以及它附带的npm工具了

相关文章
相关标签/搜索