windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的“INSTALL”按钮,直接点击就会自动下载安装了。
安装完成后,打开node prompt,查看node和npm版本(高版本的nodejs中集成了npm):
node -v
npm -v
安装完成后,nodejs安装路径会自动添加到PATH环境变量;
本文安装路径为:D:\Program Files (x86)\Install\nodejs
npm是NodeJS的模块管理工具。默认的npm安装包的存放路径是:C:\Users\GCQ\AppData\Roaming\npm(全局路径)
C:\Users\GCQ\AppData\Roaming\npm-cache(缓存路径)
下面修改其默认npm包安装路径。
运行 npm config set cache “D:\Program Files (x86)\Install\nodejs\node_modules\node-cache” 设置缓存文件夹;
运行npm config set prefix "D:\Program Files (x86)\Install\nodejs\node_modules\node-global"设置全局模块存放路径;
修改D:\Program Files (x86)\Install\nodejs\node_modules\npm\npmrc
为prefix=D:\Program Files (x86)\Install\nodejs\node_modules\node-global
如果不做这个修改,则npm在运行 npm ls -g 的时候,仍然以默认的路径来查找已安装的全局模块;(网上这么说的,但我没修改好像也能正常使用配置的全局安装路径,保险起见还是改了吧)
npm install express -g以全局方式安装express模块,可发现,在D:\Program Files (x86)\Install\nodejs\node_modules\node-global\node_modules下出现express文件夹;
上面全局安装了模块express,require(‘express’)可以从全局路径中引用模块。直接require模块名很方便,但是需要在环境变量中配置NODE_PATH(值为NODE_PATH=D:\Program Files (x86)\Install\nodejs\node_modules\node-global\node_modules),否则就要以相对于当前执行命令的路径在require中引用模块。
npm安装模块的方式有两种:本地安装,全局安装。
这两者的区别在于,在用npm install xxx时加不加-g这个选项。
本地安装的路径在win中是当前cmd的路径。比如,我一打开cmd时,路径是C:\Documents and Settings\Administrator。那如果我用npm install koa的话,结果会在这个目录下生成一个node_modules文件夹,里面是koa文件夹。很显然,很多时候,我们不会把工作路径设在c盘的那个地方。这时,如果require(‘koa’);的话就会提示找不到模块的错误。
那怎么办呢,就是先在cmd里面切换目录到你的工作路径,然后再安装。这也是推荐的方式。
还有一点要注意,就是安装后用require(‘koa’);时,要像普通js一样,完全显式的指定它的路径。比如我的chat_server.js是这样引用socket.io的。 require(’./node_modules/socket.io/index.js’)(server);,前面有个点代表当前js文件的路径。
全局安装:这个很好理解,比如自己做的很多东西都是基于express,而且东西里面又有很多地方用到express,如果每次都像上面那样指定路径的话会很烦人。如果用全局安装的话,就可以直接用require(‘express’);了。
全局安装的默认路径是
那如果我不喜欢这个路径的话,怎么办。
比如我的node.js安装在F:\nodejs,新建一个lib文件夹,里面放新安装模块。
先找到F:\nodejs\node_modules\npm里面的npmrc这个文件,打开可以看到就只有
prefix=${APPDATA}\npm
将其改成prefix=F:\nodejs\lib\npm\node_modules\npm。
这时记得安装的时候加上-g选项。
全局安装的方式在windows 中,必须配置 NODE_PATH=F:\nodejs\lib\npm\node_modules\npm\node_modules 环境变量,才能在代码作用使用require引用,否则会报错。红色部分是自动生成的文件夹,需要在NODE_PATH中添加,在是prefix并未指定。
另外,设置完环境变量后要重新打开cmd才能让新设置的环境变量生效。