You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

遇到的问题及无效尝试

  1. 初始安装卡在fetchMetadata:环节,速度极慢
  2. 切换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
  1. 切换回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'
  1. 用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)
  1. 已尝试但无效的操作:
    • 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访问问题:
    npm config set registry https://registry.npmmirror.com/
    npm install @wordpress/scripts --save-dev
    
    若安装成功,可长期使用该镜像,或排查原registry的访问限制

隔离WordPress目录影响

  • 停止apache2服务,避免进程占用文件:
    sudo systemctl stop apache2
    
  • 在非WordPress目录(如~/test)执行安装,测试是否正常:
    mkdir ~/test && cd ~/test
    npm init -y
    npm install @wordpress/scripts --save-dev
    
    若成功,调整原主题目录权限:
    sudo 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:47:30