安装Node.js、npm和环境变量的配置
由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。
一、安装Node.js
首先,从Node.js官网下载对应平台的安装程序,网速慢的童鞋请移步国内镜像。在Windows上安装时务必选择全部组件,包括勾选Add to Path
。
安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v
,如果安装正常,你应该看到v8.10.0
这样的输出。继续在命令提示符输入node
,此刻你将进入Node.js的交互环境。在交互环境下,你可以输入任意JavaScript语句,例如100+200
,回车后将得到输出结果。要退出Node.js环境,连按两次Ctrl+C。
二、npm
npm其实是Node.js的包管理工具(package manager)。为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。
更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。
讲了这么多,npm究竟在哪?其实npm已经在Node.js安装的时候顺带装好了。我们在命令提示符或者终端输入npm -v
,应该看到类似的输出。如果直接输入npm
,你会看到类似下面的输出。如下面所示
上面的一大堆文字告诉你,npm
需要跟上命令。现在我们不用关心这些命令,后面会一一讲到。目前,你只需要确保npm正确安装了,能运行就行。
三、配置NodeJS和NPM
1、并不是说NodeJS和NPM安装好了以后就能直接使用了,这也是新手经常犯的一个错误之一。因为默认情况下,NPM安装的模块并不会安装到NodeJS的程序目录,比如上面安装的时候我们设置的D:\Program Files\nodejs\目录,我们用个示例来看一下,我们先用npm安装一个cluster模块,如下面第一张图所示,执行命令:
npm install cluster
从图中可以看到,默认情况下把一下信息保存到C:\Users\Administrator\目录下,我们打开这个目录看看。可以看到这个目录底下有个node_modules目录,点开一看,如下面第二张图所示:
2、可以看到把cluster目录装到了这个目录下面,这就说明,如果不修改npm的模块安装目录,那么它默认情况下都会安装到这里,随着你测试开发各种不同的项目,安装的模块越来越多,那么这个文件夹的体积会越来越大,直到占满你的C盘。这就是为什么要修改npm的配置的原因。
3、这里我们要分两步:
第一步:修改NPM的缓存目录和全局目录路径,将对应的模块目录改到D盘nodejs的安装目录;
第二步:是配置npm和nodejs的环境变量,这样nodejs才能正确地调用对应的模块。
我们先来做第一步,在D盘nodejs目录下创建两个目录,分别是node_cache和node_global,这是用来放安装过程的缓存文件以及最终的模块配置位置。
配置完成后,执行下面这两个命令:
npm config set prefix "D:\Program Files\nodejs\node_global"
npm config set cache "D:\Program Files\nodejs\node_cache"
将npm的全局模块目录和缓存目录配置到我们刚才创建的那两个目录:
4、然后我们打开cmd命令行界面,在使用命令安装刚才的cluster模块,命令如下:
npm install cluster -g
然后打开刚才创建的node_global目录,可以看到此时cluster目录就安装到这个目录底下了。
5、然后我们来配置npm的环境变量和nodejs的环境变量。
在计算机图标上点右键,选属性,然后点击高级系统配置,弹出来的新窗口右下角有个环境路径,点进去,就能看到环境路径的配置界面,我们点击新建。然后在弹出来的窗口里,变量名填:NODE_PATH,变量值填:D:\Program Files\nodejs\node_modules\,填写好后点确定,然后就能看到我们配置好的NPM环境路径。
6、此时还需要修改一些nodejs默认的模块调用路径,因为模块的安装位置变了,如果nodejs的命令还到原来的位置去找,肯定是找不到安装的模块了。我们在环境变量窗口,选择Path,然后点击右下角的编辑,然后选择npm那个,点击编辑将其修改为:D:\Program Files\nodejs\node_global\,然后点确定,保存这个配置。
修改为:
7、这个时候所有的配置工作才算完成了,然后打开一个新的cmd窗口。先输入命令:
node
进入nodejs的交互式命令控制台,然后输入:
require('cluster')
如果能正常输出cluster模块的信息,说明上面的所有配置就算生效了。
8、我们还需要做的最后一个工作是,将npm的模块下载仓库从默认的国外站点改为国内的站点,这样下载模块的速度才能比较快,只需要一个命令即可,命令是:
npm --registry https://registry.npm.taobao.org install cluster
上面的命令是临时使用国内一家npm源的地址来安装cluster模块。从下面图中可以看到,速度非常快。只用了1秒。而我们上面第一次安装的时候用了差不多6秒多,速度快了6倍。
如果想一直使用这个源的地址,那么可以使用下面这个命令来配置。
npm install -g cnpm --registry=registry_url
registry_url指的是国内提供的一些npm仓库地址,常用的有:
https://registry.npm.taobao.org
http://r.cnpmjs.org/
这两个都可以使用。如下面第二张图所示,配置好国内源后,安装一个较大的模块express,速度提升还是非常可观的。至此,nodejs和npm在windows上的配置就全部完毕。
安装Node.js、npm和环境变量的配置的更多相关文章
- 安装 node.js npm,cnpm
参考:https://blog.csdn.net/suiyuehuimou/article/details/74143436 https://www.liaoxuefeng.com/wiki/0014 ...
- Ubuntu14.04LTS下安装Node.js&NPM以及个人博客hexo的初始化配置
什么是hexo Hexo 是一款基于node 的静态博客网站生成器作者 :tommy351是一个台湾的在校大学生...相比其他的静态网页生成器而言有着,生成静态网页最快,插件丰富(已经移植了大量Oct ...
- window下安装Node.js NPM
一.安装Node.js 下载地址:http://nodejs.org/download/ 1..msi文件,直接安装,包括了npm,结束. 2..exe文件,把node.exe所在主目录,加入到系统P ...
- 安装node.js / npm / express / KMC
http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 1. 下载Node.js官方Windows版程序: http://nodej ...
- CentOS 6.5安装Node.js, npm
CentOS上可以通过下载*.tar.gz安装包的方式自己解压缩.编译的方式安装,同时还可以采用EPEL的方式安装: Node.js and npm are available from the Fe ...
- Centos6.9安装Node.js+npm爬坑
Node.js选择 1.下载 wget https://nodejs.org/dist/v8.4.0/node-v8.4.0-linux-x86.tar.gz 2.解压 tar zxvf node-v ...
- 【centos6.5 安装 node.js + npm】
1.参考链接:http://www.jb51.net/article/116231.htm 2.下载的nodejs版本一定要是v0.12.10的(传送门:https://nodejs.org/en/b ...
- 安装JDK,Python SDK及环境变量的配置
JDK 首先是下载安装包 http://pan.baidu.com/share/link?shareid=3261115669&uk=369127748 一般JDK和Jre是一起安装的,提醒大 ...
- CentOS6.8 安装node.js npm
环境:CentOS6.8_X64系统 一.到官方下载最新的编译好的安装文件,目前是6.9.4. $>cd /usr/local/src #定位到这个目录,下载的文件会在这个目录#使用wget下载 ...
随机推荐
- iconv 转化编码
basename dirname 使用以下命令,无法处理同名文件: grep "charset=utf-8" filelist_iconv.txt | awk -F':' ...
- vim 源码分析
vim 源码分析 http://bbs.csdn.net/topics/230031469 Ver7.1 晕.看不明白很正常. 7.1已经很大了. 支持了太多东西. 代码行数那么多(源码压缩了都 ...
- spring 声明式事务中try catch捕获异常
原文:http://heroliuxun.iteye.com/blog/848122 今天遇到了一个这个问题 最近遇到这样的问题,使用spring时,在业务层需要捕获异常(特殊需要),当前一般情况下不 ...
- opencv第四章
1.载入一个带有有趣纹理的图像,使用cvSmooth()函数以多种方法平滑图像,参数为smoothtype = CV_GAUSSIAN. a.使用对称的平滑的平滑窗口,大小依次是3x3,5x5,9x9 ...
- [转]CreateDIBitmap与CreateDIBSection
首先明确最主要区别:CreateDIBitmap创建的是设备相关位图句柄 - HBITMAP. CreateDIBSection创建的是设备 ...
- yii2.0在model里自定义数据表
无需多言,直接撸代码 class Zhuanjia extends \yii\db\ActiveRecord { public static function tableName() { return ...
- AC日记——逆序对 洛谷 P1908
逆序对 思路: 线段树水过: 代码: #include <cstdio> #include <cstring> #include <iostream> #inclu ...
- 动态规划二:最长公共子序列(LCS)
1.两个子序列:X={x1,x2....xm},Y={y1,y2....yn},设Z={z1,z2...zk}. 2.最优子结构: 1)如果xm=yn ,则zk=xm=yn且Zk-1是Xm-1和Yn- ...
- AHOI2009中国象棋
首先以行为阶段,根据象棋的规则,在同一行中,至多只能有两个炮,同理:在同一列中,至多只能有两个炮思考一个可以覆盖整个状态空间的dp数组:dp[i]表示到了第i行接下来我们想:某列中的炮能否通过位运算求 ...
- Reference resources
CentOS7 (精简操作指令) http://www.centoscn.com/CentOS/help/2016/0429/7147.html