什么是npm
npm是随同NodeJS一起安装的包管理工具,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
查看npm版本
npm -v
升级npm
npm install npm -g
使用淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
这样就可以使用 cnpm 命令来安装模块了:
cnpm install [name]
npm的配置
- 查看基本配置:npm config list
- 查看所有配置:npm config list -l
- 获取全局默认安装目录:npm config get prefix
- 修改全局默认安装目录:npm config set prefix “目录”
安装模块
- 安装模块:npm install express
- 查看安装的模块:npm list
- 卸载模块:npm uninstall express
- 更新模块:npm update express
- 搜索模块:npm search express
所有命令后面加 -g 表示全局命令,默认为当前工程。
参数说明
- -g:全局安装,不带 -g 会安装在个人文件夹。
- -S 或 --sav:安装包信息会写入 dependencies 中。不加任何参数,默认会安装到dependencies。
- -D 与 --save-dev:安装包写入 devDependencies 中。
- i:install别名。
安装指定版本的包
# 安装确定版本号的包
npm install express@3.21.2
# 安装主版本号为3的最新版本
npm install express@3
注意:经测,在更改包的版本时,通过直接在dependencies更改某个包的版本号再npm install的方式,所安装的包的真实版本并不一定是自己指定的版本,具体哪个版本npm intall的时候会有提示。
本地安装
- 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
- 可以通过 require() 来引入本地安装的包。
全局安装
- 将安装包放在 /usr/local 下或者你 node 的安装目录。
- 可以直接在命令行里使用。
devDependencies 和 dependencies
在发布npm包的时候,本身dependencies下的模块会作为依赖,一起被下载,devDependencies下面的模块就不会自动下载了。
但对于项目而言,npm install 会自动下载devDependencies和dependencies下面的模块。
举个例子:
假设有以下两个模块:
模块A
- devDependencies
模块B
- dependencies
模块C
模块D
- devDependencies
模块E
- dependencies
模块A
npm install D的时候, 下载的模块为:
- D
- A
- C
当我们下载了模块D的源码,并且在根目录下npm install, 下载的模块为:
- A
- C
- E