npm install 指定版本_认识 npm & yarn (一)package.json

7148378c565b2314f2af35b59f73b963.png

Tip:本文主要讨论package.json的相关介绍。

首先我们先看一个package.json 简单示例

{
  "name": "package-a",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {},
  "author": "gaojian.superior",
  "license": "ISC",
  "dependencies": {
    "lodash": "^4.17.15"
  },
  "devDependencies": {
    "react": "^16.13.0"
  },
  "peerDependencies": {
    "react": ">16.8.0"
  }
}

我们主要关注三个部分:dependencies、devDependencies、peerDependencies。

dependencies & devDependencies & peerDependencies 的区别

dependencies

在我们的项目打包上线的时候会把dependencies内所有依赖的npm包,都打包进来。

devDependencies

在我们开发项目时所依赖的npm包,打包上线时不会打包devDependencies所依赖的包。

peerDependencies

开发工具、插件常用。在其它开发同学要引用我们所开发的npm包时,会先检查peerDependencies所依赖的npm包提示需要安装相关依赖,然后再去安装我们的npm包。简单来说就是想要使用这个npm包的前置依赖。

总结一下:

  • 我们开发的时候:dependencies 和 devDependencies 内的npm包都会用到;
  • 我们打上线包的时候:
  • 打包时 dependencies 和 devDependencies 内都会用到
  • 产出的包 只包含 dependencies 的
  • 别人引用我们的npm包时:
  • 检查我们npm包 package.json 的 peerDependencies 依赖,如果没有安装相关依赖则提示warning
  • 安装我们npm包 以及 package.json 的 dependencies 依赖

常见依赖版本号的区别

我们讨论一下package.json中对包的依赖版本号代表什么区别:

"lodash": "1.0.0" 指定包版本必须为 1.0.0

"lodash": ">1.0.0" 指定包版本必须大于 1.0.0

"lodash": ">=1.0.0" 指定包版本必须大于等于 1.0.0

"lodash": "<1.0.0"指定包版本必须小于 1.0.0

"lodash": "<=1.0.0"指定包版本必须小于等于 1.0.0

"lodash": "~1.2.0" 指定包版本的大版本和次版本号必须相同,且不能低于该版本(例:1.2.0 和 1.2.5 均可,但是 1.3.0 和 2.2.0 不可以)

"lodash": "^1.2.0"指定包版本的大版本号必须相同,且不能低于该版本(例:1.2.0 和 1.3.0 均可,但是 2.0.0 不可以)

"lodash": "1.2.x"指定版本号的x位任意均可

"lodash": "*"任意版本号均可

在我们 npm 或 yarn 安装的时候会根据 package.json 对不同包版本依赖会安装相似的版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值