nodejs npm install全局安装和本地安装的区别

JavaScript029

nodejs npm install全局安装和本地安装的区别,第1张

全局安装可以在命令行直接运行(全局模块的真实安装路径在/usr/local/lib/node_modules/下,/usr/local/bin下的可执行文件只是软链接)本地安装只能在安装目录下运行(./node_modules下)比如“npminstall-geslint”,可以在任意命令行窗口输入“eslint-v”查看eslint版本号参考:

推测是目录读写权限出现问题。

解决方案如下:

我们要先配置npm的全局模块的存放路径以及cache的路径,例如我希望将以上两个文件夹放在NodeJS的主目录下,便在NodeJs下建立”node_global”及”node_cache”两个文件夹。如下图:

启动cmd,输入两条命令:

npm config set prefix “e:\php\nodejs\node_global”

npm config set cache “e:\php\nodejs\node_cache”

选择express这个比较常用的模块。同样在cmd命令行里面,输入“npm install express -g”(“-g”这个参数意思是装到global目录下,也就是上面说设置的“C:\Program Files\nodejs\node_global”里面。)

关闭cmd,打开系统对话框,“我的电脑”右键“属性”-“高级系统设置”-“高级”-“环境变量”。如下图:

进入环境变量对话框,在系统变量下新建”NODE_PATH”,输入”C:\Program Files\nodejs\node_global\node_modules“。(ps:这一步相当关键。) 2014.4.19新增:由于改变了module的默认地址,所以上面的用户变量都要跟着改变一下(用户变量”PATH”修改为“C:\Program Files\nodejs\node_global\”),要不使用module的时候会导致输入命令出现“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”这个错误。

在你的项目目录下面,重新输入npm install ,可以成功解决。

命令中,全局安装(global)和本地安装(local)方式的区别为带参数-g和不带参数-g。

区别:1.安装位置 2.调用方式

1.安装位置:

npm install moduleName ,则是将模块下载到当前命令行所在目录。

npm install moduleName -g ,模块将被下载安装到全局目录中,即Node的安装目录下的node_modules下

2.调用方式:

在代码中,本地安装可以直接通过require()的方式引入;var moduleName = require('moduleName')

全局的安装是供命令行(command line)使用的,比如grunt,全局安装的方式是没有办法用require调用包的;

备注:

可以通过使用npm set global=true/false来设定安装模式,npm get global可以查看当前使用的安装模式。