Google Cloud中npm安装@wordpress/scripts缓慢及报错求助
问题:Google Cloud Linux环境下npm安装@wordpress/scripts卡顿/失败
环境信息
- Google Cloud Compute Engine Linux实例
- Node.js v14.21.3,npm v9.7.2
- 目标执行命令:
npm install @wordpress/scripts --save-dev
遇到的问题及无效尝试
- 初始安装卡在
fetchMetadata:环节,速度极慢 - 切换HTTP registry并清缓存后,执行
npm install --verbose @wordpress/scripts --save-dev出现错误:
(#########⠂⠂⠂⠂⠂⠂⠂⠂⠂) ⠇ reify:fsevents: verb audit error HttpErrorGeneral: 426 Upgrade Required - POST http://registry.npmjs.org/-/npm/v1/security/audits/quick
- 切换回HTTPS registry并清缓存,出现目录非空错误:
ENOTEMPTY: directory not empty, rename '/var/www/html/wp-content/themes/travel/node_modules/babel-loader' -> '/var/www/html/wp-content/themes/travel/node_modules/.babel-loader-P0fx9R40'
- 用
rm -rf node_modules删除依赖目录后重新安装,仍卡在依赖获取环节,单包请求耗时超200秒:
.... npm http fetch GET 200 https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz 225800ms (cache miss) npm http fetch GET 200 https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz 227046ms (cache miss) npm http fetch GET 200 https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz 227349ms (cache miss)
- 已尝试但无效的操作:
npm set maxsockets 3- 降级npm到v6版本
- 重装nvm/Node.js/npm
- 设置
strict-ssl true
关键对比信息
在未安装apache2、WordPress和SSL的同平台Compute Engine实例中,该命令可成功执行,耗时约5分钟。
需求
无需重装所有环境,如何调试解决此问题?
解决方案
1. 排查网络层面限制
检查防火墙/安全组规则
- 确认实例的VPC防火墙规则允许出站HTTPS(443端口)流量到
registry.npmjs.org - 执行
telnet registry.npmjs.org 443测试连通性,若无法连接,需调整防火墙策略
测试DNS解析
- 执行
nslookup registry.npmjs.org,确认解析结果正常;若异常,切换DNS为Google Public DNS:echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf
测试网络链路质量
- 执行以下命令测试单包下载耗时,若持续超过10秒,说明网络链路存在瓶颈:
curl -w "%{time_total}\n" -o /dev/null -s https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz
2. 清理残留文件与缓存
- 彻底删除依赖目录和锁定文件:
rm -rf node_modules package-lock.json - 清理npm全局缓存:
npm cache clean --force rm -rf ~/.npm
3. 绕过本地环境干扰
切换npm镜像测试
- 临时使用国内镜像(如淘宝镜像)验证是否为原registry访问问题:
若安装成功,可长期使用该镜像,或排查原registry的访问限制npm config set registry https://registry.npmmirror.com/ npm install @wordpress/scripts --save-dev
隔离WordPress目录影响
- 停止apache2服务,避免进程占用文件:
sudo systemctl stop apache2 - 在非WordPress目录(如
~/test)执行安装,测试是否正常:
若成功,调整原主题目录权限:mkdir ~/test && cd ~/test npm init -y npm install @wordpress/scripts --save-devsudo chown -R $USER:$USER /var/www/html/wp-content/themes/travel sudo chmod -R 755 /var/www/html/wp-content/themes/travel
4. 优化npm安装参数
- 禁用npm audit功能,避免安全审计请求卡顿:
npm install @wordpress/scripts --save-dev --no-audit - 启用详细计时日志,定位卡顿时点:
npm install @wordpress/scripts --save-dev --verbose --timing
5. 调整Node.js版本
- @wordpress/scripts对Node.js v14.x兼容但可能存在优化问题,尝试升级到v16.x LTS版本:
nvm install 16 --lts nvm use 16 npm install @wordpress/scripts --save-dev
内容的提问来源于stack exchange,提问作者user1207289
相关产品推荐
相关产品推荐

