首页 > 其他分享 >记一次yarn和npm混用导致的问题

记一次yarn和npm混用导致的问题

时间:2023-02-06 16:57:47浏览次数:40  
标签:npm package lock yarn 混用 json jenkies

接手项目的时候,只有package-lock.json文件,由于个人习惯用yarn包管理工具,于是项目便有了两个版本锁定文件:package-lock.json和yarn.lock,在后续的项目开发过程中,并没有出现依赖版本冲突问题,遂没有管这个事情。

直到在用jenkies部署前端过程中,出现了问题。由于未知原因,在构建脚本中,一开始是用npm i 下载依赖,但是失败,换成yarn,是可以成功的。

某次在本地运行项目出现了一个警告:

大意是,Browserslist和caniuse-lite依赖需要更新,按照提示执行npx browserlist@latest  --update-db依旧报错,删除package-lock,json和node_moudles,重新npm i ,成功解决

但是jenkies构建时,控制台输出依旧会有这个警告:

讲道理,每次构建都会拉取最新分支,docker拉取的node环境镜像和本地版本什么的都是一致的,并且如果docker检测到package.json变化,也会重新下载依赖,保持构建版本和本地版本一致,但是当时排期紧张,该警告并不影响项目运行,就没有仔细研究。

闲下来,可以仔细看下这个问题了,对比本地和docker容器的不同,大概就是本地是用npm i 下载依赖,jenkies脚本则是yarn 下载依赖,所以解决办法是在本地又重新删除了node_moudles和yarn.lock文件,再用yarn下载node_modules,这样

的话,package-lock.json和yarn.lock就保持一致了,重新推送分支,再次构建,jenkies的控制台输出没有警告了。

此外,因为某些插件版本过低,在项目运行时,控制台里会有升级的警告和建议,若本地使用npm进行升级,在我的jenkies(我的jenkies使用的是yarn)构建过程中依然会有警告,还需在本地用yarn更新一下插件,有些繁琐。

最后,使用npm和yarn下载依赖都会依照package.json,但是package-lock.json只对npm起作用,yarn.lock只对yarn起作用,因此npm和yarn混用会有概率发生依赖版本冲突的问题,特别是在这样的情况下:主分支和副分支使用不同的包管理工具,切换分支后会有概率报错。怎么解决?要么在项目最开始就想好使用什么包管理工具,如果就是要混用,那么就保持package-lock.json和yarn.lock文件的依赖版本保持一致。

 

标签:npm,package,lock,yarn,混用,json,jenkies
From: https://www.cnblogs.com/heweiqun/p/17095899.html

相关文章

  • Node.JS 配置cnpm
    视频百度npm搜到淘宝npm镜像npminstall-gcnpm--registry=//registry.npm.taobao.org这样既不影响npm访问美国服务器,又不影响cnpm访问中国服务器......
  • Node.JS npm简介
    视频npm的命令npm-v查看npm的版本npmversion查看所有模块的版本npmsearch包名搜索包npminstall/i包名安装包npmremove/r包名删除包npminsta......
  • npm 的配置文件 .npmrc
    一、.npmrc配置文件的作用.npmrc,可以理解成npmrunningcnfiguration,即npm运行时配置文件。简单点说,.npmrc可以设置package.json中依赖包的安装来源,既从哪里下载依......
  • npm i 安装依赖后,项目目录文件没有显示node_modules
    问题描述:npmi依赖安装成功,但是项目目录文件没有显示node_modules(之前我npmi,直接就是安装到当前项目目录,这次不知为何,仅仅是把package.lock.js文件删除掉后再npmi就直接......
  • dremio DacDaemonYarnApplication 简单说明
    DacDaemonYarnApplication属于dremio通过twill集成yarn的应用指南定义,核心是实现了标准的TwillApplication接口前边有简单说过twill的运行,一个是通过实现TwillRunna......
  • npm如何引入本地依赖 --npm包开发测试
    今天在用一个组件时,发现这个组件的功能有些小问题,便想改好之后提个pr上去. 但是!当我把仓库clone下来,npmi,npmrunserve之后,咔咔报错,才发现事情并没有那么......
  • dremio yarn 集成之 AppBundleGenerator 简单说明
    AppBundleGenerator的目的是方便yarn应用的运行,dremio自己开发了一个方便软件打包的服务,可以简化参考处理默认生成的jar包名称dremio-bundle.jarpublicPa......
  • dremio 的 YarnDaemon 简单说明
    YarnDaemon与DremioDaemon基本类似,都是启动dremio服务,只是YarnDaemon更多是关于执行器节点的运行模式与DremioDaemon差异比较大,DremioDaemon就是一个longrunning......
  • cnpm安装时node_modules包总是出错
    前言直入主题,第一步:删除 node_modules包;第二步:cnpmcacheclean--force,如果报错了就用cnpmcacheverify 第三步:cnpminstall重新安装 一次......
  • npm 包
           ......