Node包管理器npm和yarn怎么使用
这篇文章主要介绍“Node包管理器npm和yarn怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node包管理器npm和yarn怎么使用”文章能帮助大家解决问题。
一、npm的使用
npm是什么
使用
npm
前首先要了解什么是npm
,npm
是Node
的开源仓库,并且是全球最大的开源仓库截至2020年3月17日,
npm
为大约1200万开发人员提供了130万个软件包,这些开发人员每月下载这些软件包达750亿次要想去下载使用
npm
仓库里面的资源可以使用npm的指令
(npm
开头的,如npm i axios
下载axios
)或使用其它第三方的指令(第三方的Node包管理器
),如yarn等官方说法:
是npm
的包管理和分发工具NodeJS
包管理就体现在它是个
的仓库,存放并管理着NodeJS
的各种软件包NodeJS
分发工具就体现在使用
去下载npm的指令
仓库里的包npm
在我们配置
NodeJS
环境时,npm指令模块
是随着NodeJS
一起安装的,我们可以通过终端运行npm -v
查看安装的版本:但如果默认安装的
npm
版本太老,你也可以自己手动安装更新npm:npm i npm@latest -g
代表安装最新版本,@latest
代表全局安装,这些-g
指令将在后面讲到npm
上面可以发现一个神奇的事情,我们正在通过
npm
安装npm
,自己安装自己?这其实很好理解,
npm的指令模块
也是作为一个包存放于npm
这个仓库中的,并且这个包的名字就叫npm
所以我们一般称呼的npm都只是指npm的这个指令模块(这个名为npm的包)
但其实
这个词即代指了npm
,也代指了npm指令模块
这个npm
开源仓库本身NodeJS
所以就有了我们在中(这个npm代表NodeJS的开源仓库)下载npm
(这个npm代表名为npm的这个包,这个包是npm的指令模块)的说法npm
npm常用指令
的指令非常多,这里只列举出常用的,更多信息可见npm官方文档npm
:生成npm init
package.json
:下载npm install
中记录的所有资源package.json
: 下载指定的包到当前目录下npm install 包名
: 卸载当前目录下指定的包npm uninstall 包名
:更新当前目录下指定的包,不加包名则更新当前目录下所有包npm update 包名
:检查当前目录下指定包是否过时,不加包名则检查当前目录下所有包npm outdated 包名
:获取当前目录下包的详细信息npm info 包名
:查看当前目录下安装的所有包及其依赖并显示版本号(npm list
可简写为list
)ls
:查看当前目录下安装的指定包的版本号(npm list 包名
可简写为list
)ls
几点补充:
可简写为install
,如:i
可简写为npm install axios
npm i axios
可简写为uninstall
un
在包名后加
符可指定包的版本,如:@
下载1版本的md5,npm i md5@1
表示下载最新版本的md5npm i md5@latest
指令后缀npm
:指定全局环境-g
指令默认是在当前目录下操作,加上npm
是指定在全局环境下操作,如上面提到的全局安装npm最新版:-g
,这样在任何目录下都能使用npmnpm i npm@latest -g
可简写为--save
: 指定 生产环境 下的依赖(记录在-s
中)dependencies
版本之后默认是npm5
,如安装在生产环境和开发环境都需要用到的axios:--save
npm i axios -s
可简写为--save-dev
:指定开发环境下的依赖(记录在-D
中)devDependencies
如安装生产环境下不需要使用的babel(仅在开发环境下使用的到):
npm i babel -D
可简写为--save-prod
:与-P
相同--save
可简写为--save-optional
:指定可选依赖(记录在-O
中)optionalDependencies
:不会记录在--no-save
中package.json
关于
的具体作用和区别可看我的这篇文章:npm install -g/–save/–save-dev的区别-g,--save,--save-dev
npm指令后缀也可以放到包名的前面:
npm i -g npm@latest
依赖包管理
在
npm
中,熟知的依赖是 :dependencies
和 devDependencies
除此之外,其实还有包括 :
,peerDependencies
optionalDependencies
bundledDependencies / bundleDependencies
在内的几种依赖,这些都是在
package.json
中进行记录的:上面我们说npm指令后缀时提到了这几种依赖,这里详细说一下它们代表什么:
和 dependencies
devDependencies
peerDependencies
optionalDependencies
可选依赖,如果有一些依赖包即使安装失败,项目仍然能够运行或者希望npm继续运行,就可以使用
,另外optionalDependencies
会覆盖optionalDependencies
中的同名依赖包,所以不要在两个地方都写dependencies
/ bundledDependencies
bundleDependencies
打包依赖,
是一个包含依赖包名的数组对象,在发布时会将这个对象中的包打包到最终的发布包里,数组里面的包必须先在bundledDependencies
或devDependencies
声明过,否则打包会报错dependencies
package.json中需要注意的包版本问题
通过
npm
下载的所有包的版本信息都会记录在package.json
中在运行
npm i
时就会根据package.json
中记录的包信息进行下载,它的下载规则如下:包版本以
开头时(默认情况),会锁定大版本^
// package.json "dependencies": { "md5": "^2.1.0" // ^开头的 },
通过
将会安装npm i
md5
的最新版本(2大版本下的最新版本),并不一定是2.1.0,还可能是2.3.02.x.x
包版本以
开头时,会锁定到第二个大版本~
// package.json "dependencies": { "md5": "~2.1.0" },
通过
将会安装npm i
md5
的最新版本(2.1版本下的最新版本),并不一定是2.1.0,还可能是2.1.12.1.x
包版本为
,会锁定到最新版本*
// package.json "dependencies": { "md5": "*" },
通过
将会安装npm i
的最新版本md5
包版本前不带前缀,会锁定到指定版本
// package.json "dependencies": { "md5": "2.1.0" },
通过
将会安装npm i
的2.1.0版本md5
解决npm速度慢的问题
因为
npm
仓库在国外,我们在国内使用npm
指令下载这个国外仓库的内容速度会比较慢这时我们就可以运行以下指令将
npm
的仓库源切换到国内的淘宝镜像(cnpm) 的源:npm config set registry https://registry.npmmirror.com
使用
npm config get registry
查看当前源:往后再使用
npm
时就会自动从国内的淘宝镜像仓库下载了,速度就会很快淘宝镜像之前的源地址为http://registry.npm.taobao.org,现在更改为了http://registry.npmmirror.com,
但我们这样通过修改
npm
的配置进行源的切换难免会有点麻烦,我们可以全局安装一个nrm
来帮助我们快速的切换npm
源使用nrm快速切换npm源
全局安装nrm:
npm install -g nrm
执行
nrm ls
可查看可切换的npm源:使用
npm use
切换源,如切换到淘宝源:nrm use taobao
使用
nrm test 源名
测试相应源的响应时间:可以看到淘宝源的响应速度要比
npm
的默认源快很多中国npm镜像:cnpm
cnpm
是一个完整的npmjs.org镜像,可以用它代替官方版本与官方版本的同步频率为10分钟一次,cnpm官网cnpm
下载
cnpm
: npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm就是淘宝镜像,上面我们使用淘宝镜像源只是将
npm
的源更改为淘宝镜像(cnpm
)的源(这个源其实就是指仓库的地址),之后还是通过npm
指令进行使用而这里是直接下载
cnpm
这个完整镜像,之后就可以使用cnpm
指令而不是npm
指令:cnpm installcnpm i axios -g
// ....
的指令与cnpm
的指令完全相同,使用时直接使用cnpm代替npm就行npm
二、yarn的使用
yarn是Facebook发布的一款依赖管理工具,它比
npm
更快、更高效安装:
npm install -g yarn
更新yarn:
yarn set version latest
yarn set version from sources
优点
速度超快
缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快yarn
超级安全
在执行代码之前,
会通过算法校验每个安装包的完整性yarn
yarn常用指令
:初始化项目,生成yarn init
文件,生成步骤与package.json
大致相同npm init
:显示命令列表yarn help
:下载yarn install
中记录的所有资源,可简写为package.json
yarn
: 下载指定的包到当前目录下yarn add 包名
: 卸载当前目录下指定的包yarn remove 包名
:更新当前目录下指定的包,包名后可加yarn upgrade 包名
来指定需要更新到的版本@指定版本号
指令后缀yarn
:指定开发环境下的依赖(--dev
),简写为devDependencies
-D
:指定核心依赖(--peer
)peerDependencies
:指定可选依赖(--optional
)optionalDependencies
相关文章