npm,yarn包管理工具


前言


一、npm包常见的属性

  • name是项目的名称;
  • version是当前项目的版本号;
  • description是描述信息,很多时候是作为项目的基本描述;
  • author是作者相关信息(发布时用到);
  • license是开源协议(发布时用到);
  • main属性:程序的主入口
  • private属性:private属性记录当前的项目是否是私有的;
    当值为true时,npm是不能发布它的,这是防止私有项目或模块发布出去的方式;
    -scripts属性:scripts属性用于配置一些脚本命令,以键值对的形式存在;
    配置后我们可以通过 npm run 命令的key来执行这个命令;
    npm start和npm run start是等价的;
    对于常用的 start、 test、stop、restart可以省略掉run直接通过 npm start等方式运行;
  • dependencies属性为生产环境依赖 下载包的时候后面添加-S,将会添加到dependencies中(npm install axios -S)
  • devDependencies属性 生产环境不依赖的包 如打包工具webpack ,通过-D,将会安装到devDependencies中 ( npm install webpack -D)

二、npm版本管理

  1. 我们安装的包前面的^ ~是什么,0.20.0又是什么呢?
 "dependencies": {
    "axios": "^0.20.0"
  },
  "devDependencies": {
    "webpack": "~3.6.0"
  }
  • X.Y.Z是安装包的版本
    X 主版本号(major):当你做了不兼容的 API 修改(可能不兼容之前的版本);
    Y 次版本号(minor):当你做了向下兼容的功能性新增(新功能增加,但是兼容之前的版本);
    Z 修订号(patch):当你做了向下兼容的问题修正(没有新功能,修复了之前版本的bug);
  • ^和~的区别
    ^x.y.z:表示x是保持不变的,y和z永远安装最新的版本;
    ~x.y.z:表示x和y保持不变的,z永远安装最新的版本;

三、npm install过程

在这里插入图片描述

npm install会检测是有package-lock.json文件:

  • 没有lock文件
    1.分析依赖关系,这是因为我们可能包会依赖其他的包,并且多个包之间会产生相同依赖的情况; 从registry仓库中下载压缩包(如果我们设置了镜像,那么会从镜像服务器下载压缩包);
    2.获取到压缩包后会对压缩包进行缓存(从npm5开始有的);
    3.将压缩包解压到项目的node_modules文件夹中
  • 有lock文件
    1.检测lock中包的版本是否和package.json中是否一致
    1.1、不一致,那么会重新构建依赖关系,直接会走顶层的流程;
    1.2、一致的情况下,会去优先查找缓存 如果没有找到,会从registry仓库下载,直接走顶层流程;
    查找到,会获取缓存中的压缩文件,并且将压缩文件解压到node_modules文件夹中;

四、Yarn工具

  • 另一个node包管理工具yarn:弥补 npm 的一些缺陷而出现的(比如安装依赖速度很慢、版本依赖混乱等等一系列的问题)
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值