主页:🚪 传送
概述
npm致力于让 JavaScript 开发变得优雅、高效和安全。免费的 npm Registry 已成为 JavaScript 代码共享的中心,拥有超过一百万个软件包,是世界上最大的软件注册表。它是Node.js的标准包管理器,用于安装、共享和管理应用程序依赖关系
,能解决NodeJS代码部署上的很多问题。也就是说,如果你想要在你的项目中引入一些库或工具,可以使用npm来快速安装。
介绍命令之前先来看一下常用的使用场景。
一般来说比较常见的场景有以下几种:
常见使用场景:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器 下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
常用命令
一些npm常用命令
- npm版本号
c
# 检测npm是否安装,以及查看npm安装的版本号
npm -v
- npm升级
c
# 如果安装的是旧版本的npm,可以通过npm命令来升级
npm install npm -g
- 临时使用镜像源
c
# 设置本次从淘宝镜像上安装需要的包,不改变npm原有的仓库镜像源
npm install -g <安装包名> --registry=https://registry.npm.taobao.org
# 安装package.json中所有的包,本次安装从设置的镜像中下载,不改变npm原有配置的仓库镜像
npm install --registry=https://registry.npm.taobao.org
- 查看镜像源
c
# 查看当前本地npm配置的仓库镜像
npm config get registry
- 配置镜像源
c
# 配置本地npm的仓库镜像源地址,以后下载包,在下载命令中不配置镜像源时,就从上述配置的镜像源中下载指定的安装包
npm config set registry <https://....仓库镜像源地址>
# 也可以修改 ~/.npmrc 文件,加入下面内容
registry = https://registry.npm.taobao.org(<https://....仓库镜像源地址>)
- 使用cpnm
c
# 使用cnpm命令替换npm命令,$ cmpm install <包名>
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 安装指定包
c
# 加-g是全局安装指定的包,不加-g是本地本项目安装指定的包名
npm install <包名> <-g>
- 报错解决
c
# 类似 " npm err ! Error: connect ECONNREFUSED 127.0.0.1:8087 " 的错误解决 (设置null 再重新设置镜像)
npm config set proxy null
npm config set https-proxy null
npm config set registry <https://....仓库镜像源地址>
- 查看包
c
# 查看所有全局安装的包
npm -g list
- 卸载包
c
# 卸载某个包
npm uninstall <包名> ;
# 卸载所有的包
npm uninstall *
- 查看依赖包是否存在
c
# 查看依赖包是否存在(用10的命令卸载某个包后,如果是卸载的/node_modules/目录下的包,可以通过此命令查看卸载的包是否还存在)
npm ls
- 更新某个包到最新版本
c
npm update <包名>
- 升级指定包到指定版本
c
# 例如:npm install -g npm@18.15.0 ,升级npm 到18.15.0版本
npm install <-g> <包名>@<版本号>
- 操作
c
# 在npm资源库中注册用户
npm adduser
# 登录用户
npm login
# 发布项目
npm publish
# 清除缓存
npm cache verify
npm cache clean --force
俩个命令都可
对比
(本地安装与全局安装 )、(--save
和--save-dev
)选项的区别 、对比及命令。
本地安装
- 安装位置: 包会被安装在当前项目的
node_modules
目录下。 - 作用: 本地安装的包通常是项目的依赖,只在该项目中可用。
- 命令:
npm install <package_name>
全局安装
- 安装位置: 包会被安装在全局的
node_modules
目录下,通常在系统的全局路径中。 - 作用: 全局安装的包可以在任何项目中使用,一般用于安装一些命令行工具或全局可用的模块。
- 命令:
npm install -g <package_name>
说明 | 本地安装 | 全局安装 |
---|---|---|
安装位置 | 当前项目的 node_modules 目录下 |
全局的 node_modules 目录下(一般在系统全局路径) |
作用 | 项目的依赖(仅作用于当前项目) | 全局可用(一般用于安装一些命令行工具或全局可用的模块) |
命令 | npm install <package_name> |
npm install -g <package_name> |
--save
(或 -S
)
- 作用: 将包添加到
dependencies
中,标识该包为项目运行时的依赖。 - 命令:
npm install <package_name> --save
--save-dev
(或 -D
)
- 作用: 将包添加到
devDependencies
中,标识该包为开发时的依赖,仅在开发和测试阶段使用。 - 命令:
npm install <package_name> --save-dev
说明 | --save | --save-dev |
---|---|---|
作用 | 项目运行时依赖 | 开发时的依赖(仅开发与测试阶段使用) |
命令 | npm install <package_name> --save |
npm install <package_name> --save-dev |
示例:
假设要安装一个名为 lodash
的包:
bash
# 本地安装,作为项目的依赖
npm install lodash --save
# 或使用缩写
npm install lodash -S
这会把 lodash
安装到项目的 node_modules
目录,并添加到 dependencies
中。
bash
# 全局安装,作为系统的全局工具
npm install -g lodash
这会把 lodash
安装到全局 node_modules
目录中,可以在整个系统中使用。
bash
# 开发时安装,作为开发依赖
npm install lodash --save-dev
# 或使用缩写
npm install lodash -D
这会把 lodash
安装到项目的 node_modules
目录,并将其添加到 devDependencies
中,表示它是在开发阶段使用的依赖。
通过使用 --save
和 --save-dev
,你可以清晰地区分项目运行时的依赖和开发时的依赖,而本地安装和全局安装则控制了包的作用范围。
镜像设置
npm的官方镜像位于国外,有时候我们会在安装依赖的时候出现下载缓慢的情况,甚至有时候会出现安装失败的情况。为了解决这个问题,可以选择使用国内的npm镜像,以此来加快下载速度,保证依赖安装的成功率。也就是说NPM镜像是NPM的一个加速服务,用于提高NPM包的下载速度。
设置镜像方法
使用命令行或者配置文件两种方法可以设置npm镜像。
- 使用命令行设置npm镜像
c
npm config set registry https://registry.npm.taobao.org
将npm的镜像地址设置为淘宝的镜像,速度会比较快。
- 使用配置文件设置npm镜像
c
npm config edit
用命令打开npm的配置文件,然后在里面设置npm的镜像。
c
registry=https://registry.npm.taobao.org/
将registry设置为上面的镜像地址,保存后关闭即可。
示例:
c
以淘宝镜像举例:
1.临时使用
npm --registry https://registry.npm.taobao.org install express
2.一直使用
npm config set registry https://registry.npm.taobao.org
验证是否成功:
npm config get registry
或
npm info express
3.使用cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
或
cnpm install express
切换回npm官方镜像
在某些情况下,我们需要切换回npm的官方镜像。那么该如何做呢?也很简单,只需将registry这个参数设置为npm官方镜像即可。
c
npm config set registry https://registry.npmjs.org
选择镜像源
虽然淘宝的npm镜像明显比npm官方镜像快很多,但是在某些情况下,我们还是需要选择其他的镜像源。
常见镜像源:
c
1、淘宝镜像: https://registry.npm.taobao.org
2、cnpmjs镜像: https://registry.nlark.com
3、npm官方镜像: https://registry.npmjs.org
其他镜像源: 一些可能会用到的镜像:
c
cnpm --- http://r.cnpmjs.org/
eu ----- http://registry.npmjs.eu/
au ----- http://registry.npmjs.org.au/
sl ----- http://npm.strongloop.com/
nj ----- https://registry.nodejitsu.com/
选择适合自己的源可以大大提高安装依赖的速度和成功率,推荐使用淘宝的npm镜像
。