lock 文件使用

lock 文件使用

很多同学经常会遇到老项目自己跑的很好新来的同学跑不起来的问题。这都是项目未使用 lock 文件导致的 有些代码只能用固定的版本下使用的情况

npm 6.0 以上的使用 package-lock.json

  • .npmrc 配置项目根路径并设置好稳定源(如 taobao)

  • npm install 命令会根据 nrm 或.npmrc 配置 生成(未生成 lock 文件时)或更改 package-lock.json 的包下载源地址

  • npm install 命令只能由开发组长执行

  • package.json 内容和 package-lock.json 内容由项目开发组长精心维护

  • npm ci 成为了组员安装依赖或上线部署使用的命令

  • npm i -S ${私服包名} --registry ${私服地址} 私有包应直接使用指明仓库位置避免频繁使用 nrm 切换仓库

  • package-lock.json 文件应提交到 git 中

npm 6.0 以下的使用 npm-shrinkwrap.json

比较旧的项目或不确定全员 npm 版本的应使用 npm-shrinkwrap.json

  • npm shrinkwrap 在依赖完整的项目中执行
  • shrinkwrap 会将 package-lock.json 改为npm-shrinkwrap.json
  • npm-shrinkwrap.json应提交到 git 中
  • 避免经常切换 npm 源造成 lock 文件内容变更
  • npm install会修改 lock 文件,安装依赖需谨慎

yarn 使用 yarn.lock

  • yarn.lock 自带锁库属性
  • yarn.lock 应提交到 git 中
  • yarn --frozen-lockfile 类似于 npm ci,可用于持续集成环境

免 lock 终极大法

去掉 package.json dependencies 的^ ~前缀,使用固定版本

一种特殊场景

有些项目中安装了私服包,其他人第一次安装项目依赖时,如果不使用私服源,会提示找不到私服包,此时如果使用npm i -S ${私服包名} --registry ${私服地址}单独安装私服包,又有可能会改变 lock 文件,造成锁库文件的改变。因此这种场景下,为了保证安装依赖版本的一致性,应该使用 nrm 切换至私服源,然后使用 npm ci 命令进行安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值