外网pnpm安装的node_modules包迁移到内网环境提示node_modules will be removed and reinstalled from scratch.Proceed?

背景

由于内网没有所需的node包,于是在外网使用pnpm install安装后将node_modules复制到内网的项目目录下,内网执行pnpm install后提示node_modules will be removed and reinstalled from scratch.Proceed?,无论选择是否执行都会删除复制过来的node包并重新下载,由于内网环境所以下载失败404。
在这里插入图片描述

原因

当前存储库不是内网环境中pnpm所配置的,需要重新指向新的存储库

解决

  1. 除了node_modules还需要复制.pnpm-store文件夹,这个是个隐藏文件夹,可以用everything软件找一下。将其一起复制到内网环境中并替换原有.pnpm-stor文件夹。
  2. 打开出问题的项目目录中的node_modules文件夹,最下面有一个.modules.yaml文件拉到最下面修改storeDir和virtualStoreDir地址。

在这里插入图片描述

  1. 修改virtualStoreDir为当前项目的.pnpm文件夹
    修改storeDir为新的.pnpm-store\v3文件夹
  2. 重新执行pnpm install即可

二编

注意需要确定内外网的node和pnpm版本一致,项目中有一个pnpm-lock.yaml文件,用于锁定依赖版本,如果内网外版本不一致,即时按上述修改也会出现node_modules will be removed and reinstalled from scratch.Proceed?的报错。

posted @ 2024-09-13 11:39  日报初级开发工程师  阅读(67)  评论(0)    收藏  举报  来源