package.json package-lock.json yarn.lock相关知识

参考文章:

https://swift.ctolib.com/imsnif-synp.html

https://segmentfault.com/a/1190000017239545?utm_source=tag-newest

 

一 、首先package.json 和 package-lock.json 是 npm管理 包依赖的配置文件。而 yarn.lock 是yarn 管理包依赖的文件。 npm和yarn是管理包的工具。

二 、 package.json 和 package-lock.json 的区别

 这个是由于npm版本5.0前后版本改动所引起的。

语义版本控制 X,Y,Z,分别是主要版本,次要版本和补丁版本

例如:1.2.3,主要版本1,次要版本2,补丁3。

默认情况下,npm 安装最新版本,并预先插入版本号,例如 “^1.2.12”,这表示至少应该使用版本 1.2.12,但任何高于此版本的版本都可以,只要它具有相同的主要版本,由于次要版本和补丁编号仅代表错误修正和非破坏性添加, 你可以安全地使用任何更高版本的同一主要版本。

npm 5.0之前只要 package.json 就可以管理包依赖 。

npm5.0以后 还需要  pakge-lock.json管理包依赖, package.json 负责主要版本控制,pakge-lock.json负责次要版本和补丁版本的控制,这样项目所下载的依赖包都是相同的,不会出现问题。

三、yarn.lock和package-lock.json的作用相同,只是管理工具不同,格式不一样。

四、yarn.lock和package-lock.json的相互转换

 首先安装  synp   

npm install -g synp

1. yarn.lock => package-lock.json

yarn # be sure the node_modules folder dir and is updated
synp --source-file /path/to/yarn.lock
# will create /path/to/package-lock.json

2.package-lock.json => yarn.lock

npm install # be sure the node_modules dir exists and is updated
synp --source-file /path/to/package-lock.json
# will create /path/to/yarn.lock

3. 用代码的方式转换

const { npmToYarn, yarnToNpm } = require('synp')

const libPath = '/path/to/my/lib'
const stringifiedYarnLock = npmToYarn(libPath)
const stringifiedPackageLock = yarnToNpm(libPath)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值