以下内容经过了脱敏处理 一、背景 下文中的“lock文件”指yarn.lock文件 1.在牛客的前端开发中,会使用到很多牛客自己发布或者fork其他人代码代码的npm包。这些包基于场景需要,在package.json中通过写死版本号锁定了依赖版本(错误行为,需要不锁死或使用lock文件)。 上图是牛客某次服务部署流水线报错的原因 但是这就造成了一个问题,虽然我们锁定了一个包的依赖版本。但是这个包的依赖,我们没办法锁定,所以当依赖的依赖不支持我们锁定的这个版本时,就会出现打包报错的问题。 ...