登录
注册
node.js 学习社区
npm 全局安装和本地安装的本质区别与注意事项

龙大

2015-01-21 17:53

简介

npm 全称是 node package manager  其功能和作用类似于 ruby的gem ,python的pip 。说直白点就是快捷的安装使用别人发布的模块(包),node现在的版本已经默认装了npm,安装完node之后,就可以直接使用npm。

npm安装模块的方法:

全局安装:npm install -g xxxx(模块名)

本地安装:npm install xxxx(模块名)

表面的区别为:是否包含 -g 参数

本质区别有两点:
  1. 模块下载后存放的目录不同。
    • (1)全局安装时,模块会被安装在系统级目录,具体安装位置与系统以及个人的设置有关,可以使用 npm config list 或者 npm config get prefix 命令查看到 prefix的值就是安装目录。
    • (2)本地安装时,模块会被存放在当前目录下的 node_modules 文件夹里。
  2. 使用模块时的权限限制。
    • (1)全局安装的模块,在任何目录的命令行下面,都可以执行该模块对应的命令;而且在任何工程的代码里都可以直接var xxx=require(该模块名);  引用该模块来使用 。
    • (2)本地安装的模块,只能在 node_modules 所在的目录下进行命令操作,否则会提示命令不存在。代码里引用的时候也是如此,只能在node_modules所在的工程内部使用,否则会引用不到。

npm 使用时注意事项:

网上有人说要把模块都安装到同一个目录下,方便管理。我个人不赞同这样做法。模块本身就是工程的一部分,与工程剥离开没有意义,也容易导致不必要的问题。

在安装模块时,分两种情况:1是经常使用的,而且是命令操作功能的模块,例如 express 和 grunt 这种,应该使用全局安装,而一般功能性的模块,即使在你的多个工程中都可以使用到,我也建议本地安装。理由是它是工程的一部分。

在墙内初始的npm需要重新设置一下源,例如 npm config set registry http://registry.cnpmjs.org ; ,这样就可以顺利安装了。先写这些,更多命令和介绍,请查看官网 https://docs.npmjs.com/cli/config

回复 · 0

发表回复

你可以在回复中 @ 其他人