npm 官网中文教程:npm 中文文档
一、认识 npm
1、npm 的使用场景
npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。
- 允许用户从 NPM 服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用。
2、查看本地 npm
查看自己是否安装 npm 或 查看已安装的 npm 的版本,可以用下面的命令:
npm -v
二、npm 管理包
0、npm 查看一个包的所有版本
npm view <包名> versions --json
1、npm 安装一个包
npm install <插件>
// 可以简写为 npm i <插件>
可以一次安装多个插件,多个插件间以空格分隔。
安装分类:
- 局部安装:默认为局部安装插件。
- 全局安装:若要全局安装插件,必须加上 -g 命令。
npm install less // 本地安装
npm install less -g // 全局安装
安装的东西会在 package.json 文件中注册。
【注意】
安装一个包时需要区分,要看这个包作用在 开发时 还是 运行时 :
- 开发时依赖:需要使用
-D(--dev-save)
,会在 devDependencies 里面添加该依赖。 - 运行时依赖:需要使用
-S(或 --save)
,会在 dependencies 里面添加该依赖。 - 若没有指定,则默认会在运行时(即 dependencies)里面添加该依赖。
如何区分一个包是开发时还是运行时所需的依赖呢?
比如:
- 如果你写 ES6 代码,想编译成 ES5 发布,可是在发布正式的线上版本之前,已经将es6通过babel转为es5,那么用户设备中运行的本来已经是es5了,所以就把babel安装在devDependencies中。
- 如果你用了 jQuery,由于发布之后还是依赖jQuery,所以是dependencies。
其实,没必要非弄个泾渭分明,只要不是线上版本依赖的包,一般安装在 devDependencies 里即可,没那么麻烦。
2、npm 查看一个包的信息
查看 npm 服务器上所有的 node-sass 版本:
npm view node-sass versions
查看npm服务器上 node-sass 最新版本:(🌟🌟🌟)
npm view node-sass version
查看npm服务器上最新版本 node-sass 的详细信息:(🌟🌟🌟)
npm info node-sass
查看本地查看全局安装的 node-sass 的信息(版本及依赖包),没有安装 node-sass,则返回 empty 的结果:
npm ls node-sass -g
查看本地当前项目 node-sass 的信息(版本及依赖包),没有安装 node-sass,则返回 empty 的结果:(🌟🌟🌟)
npm ls node-sass
3、npm 升 / 降级一个包
无论升级还是降级一个包,只需要安装 你所需要的指定版本的该包 即可:
npm i -S node-sass@6.0.1
4、npm 卸载一个包
npm uninstall less
三、npm 依赖包版本号【~/^/*】
npm 依赖包版本号的前缀标识:
- *:默认是
*
,可省略,安装的是最新版本的依赖包。 - ~ :会匹配最近的小版本依赖包,比如:
~1.2.3
会匹配所有1.2.x版本,但是不包括1.3.0。 - ^ :会匹配最新的大版本依赖包,比如:
^1.2.3
会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0。
【~/^/*】的稳定性比较:
- 推荐使用
~
,只会修复版本的 bug,比较稳定。(🌟🌟🌟) - 使用
^
,有的小版本更新后会引入新的问题导致项目不稳定。 - 使用
*
, 同样有上述问题。
四、npm 查看指定 package 包的依赖关系
1、查看项目中 npm 的依赖关系图
npm ls
2、npm 查看指定 package 包的依赖关系
npm ls <包名>
五、npm 切换镜像站点
1、查看 npm 的源
npm config get registry
【拓展】
查看 npm 的所有配置:
npm config list
2、npm 切换镜像
npm config set registry <镜像源 URL 地址>
3、使用 nrm 管理镜像源
nrm 是 npm 的镜像源管理工具。
(1)、安装 nrm
npm i -g nrm
(2)、nrm 查看镜像源(检测 nrm 是否安装成功)
nrm ls
其中,带 *
的是当前使用的源,上面的输出表明当前源是官方源。
(3)、nrm 切换镜像源
从开始的 npm 切换到 cnpm:
nrm use cnpm
从 cnpm 切换到 taobao:
nrm use taobao
(4)、nrm 新增一个自定义的镜像源
nrm add <自定义的源名> <源的URL路径 >
(5)、nrm 删除一个镜像源
nrm del <源名>
(6)、nrm 测试一个镜像源的速度
nrm test <源名>
4、常见的 npm 镜像源
nrm 简称 | npm 镜像源 |
---|---|
npm | https://registry.npmjs.org/ |
cnpm | http://r.cnpmjs.org/ |
taobao | http://registry.npm.taobao.org/ |
yarn | https://registry.yarnpkg.com |
edunpm | http://registry.enpmjs.org/ |
eu | http://registry.npmjs.eu/ |
au | http://registry.npmjs.org.au/ |
sl | http://npm.strongloop.com/ |
nj | https://registry.nodejitsu.com/ |
pt | http://registry.npmjs.pt/ |
pnpm | https://registry.npmjs.org/ |
【推荐】:
npm/pnpm/yarn切换源
参考文档: