dependencies、devDependencies、peerDependencies的区别
安装方法
-
dependencies:指定项目运行时所依赖的模块,比如说交互时处理数据需要用到的工具包等。
使用以下几种方式进行依赖安装时,安装完成后,依赖会放在dependencies下,以lodash为例:
npm install lodash yarn add lodash pnpm add lodash
-
devDependencies:指定项目开发时所需要的模块,主要是用来打包,解析文件的一些包。
使用以下几种方式进行依赖安装时,安装完成后,依赖会放在devDependencies下,以sass-loader为例:
npm install sass-loader --save-dev yarn add sass-loader --dev pnpm add sass-loader --save-dev
-
peerDependencies:指定当前模块所在的宿主环境所需要的模块及其版本
若宿主环境已有
peerDependencies
下的包且版本符合要求,那会以项目下的为准。若宿主环境已有
peerDependencies
下的包但版本不符合要求,若使用npm
安装,会报错。使用yarn
和pnpm
安装,会打印警告提示。若宿主环境没有
peerDependencies
下的包,若使用npm
安装,会同时安装peerDependencies
下的包。若使用yarn
安装,不会同时安装peerDependencies
下的包。若使用pnpm
安装,会同时安装peerDependencies
下的包到.pnpm
文件夹下。使用以下几种方式进行依赖安装时,安装完成后,会添加一个或多个
peerDependencies
的package
并安装到devDependencies
,以vue为例:npm install vue --save-peer yarn add vue --peer pnpm add vue --peer
npm和yarn安装的区别
1、yarn使用本地缓存,yarn无需互联网连接就能安装本地缓存的依赖项,它提供了离线模式。而npm每次都需要联网去下载。
2、yarn是并行安装,npm是串行的,所以yarn较之npm来说比较快。
3、npm的输出信息比较冗长。在执行npm install的时候,命令行里会不断地打印出所有被安装上的依赖,不够简洁。yarn反之。
参考文章
1、npm 包开发者必修课:彻底搞懂 dependencies、devDependencies和peerDependencies