npm命令失败:request to https://registry.npm.taobao.org/lerna failed, reason: certificate has expired
一、背景
大家应该都遇到过npm命令执行失败的情况,或者当你升级老web项目时会遇到:request to https://registry.npm.taobao.org/lerna failed, reason: certificate has expired。
二、问题
npm verb type system
npm verb stack FetchError: request to https://registry.npm.taobao.org/lerna failed, reason: certificate has expired
npm verb stack at ClientRequest.(/Users/hanweixing/.nvm/versions/node/v18.20.2/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
npm verb stack at ClientRequest.emit (node:events:517:28)
npm verb stack at _destroy (node:_http_client:882:13)
npm verb stack at onSocketNT (node:_http_client:902:5)
npm verb stack at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
问题截图:

三、解决方案
这个问题是因为taobao的npm镜像过期了,你需要去更新npm的镜像源。
3.1 查看web工程中是否有.npmrc文件

如果是在lerna项目管理中,npm命令应该在lerna项目的根目录package.json相同级别目录下执行,那么.npmrc文件应该在根目录下,当然如果packages目录下的项目中有.npmrc文件,可能是单独创建工程遗留的。没有冲突问题。
lerna项目中之需要修改根目录下的.npmrc文件,或者不存在这个文件的话就创建一个就好了。
3.2 修改npm镜像

修改的链接如下:
.npmrc
# registry=https://registry.npm.taobao.org
registry=https://registry.npmmirror.com/
3.3 清除npm cache
terminal
npm cache clean --force
3.4 验证
terminal
npm install --verbose
希望对大家有帮助
暂无评论,快来发表第一条评论吧