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

安装microsoft-cognitiveservices-speech-sdk遇npm获取resolutions超时

问题根因

你在.npmrc里配置timeout=60000不生效是正常的——这个超时根本不是npm原生请求抛出的,而是microsoft-cognitiveservices-speech-sdk包preinstall脚本调用的npm-force-resolutions工具内部硬编码的超时阈值,这个工具本身不会读取npm的timeout配置参数,改npm侧的超时设置对它无效。
你之前查到的加preinstall脚本指定npm-force-resolutions@0.0.3的方案没用,是因为依赖包自身的preinstall脚本执行时机早于项目根目录配置的preinstall脚本,你的配置根本覆盖不到依赖安装阶段的执行逻辑。

可落地的解决方法

按操作成本从低到高排序:

  • 最省事方案:安装时直接跳过所有依赖的执行脚本,从根源绕开有问题的preinstall逻辑
    npm install microsoft-cognitiveservices-speech-sdk --ignore-scripts
    
    这个操作不会影响SDK的正常使用——那个preinstall脚本是SDK开发者做依赖版本对齐用的,对SDK的端侧使用没有影响。如果安装后发现有缺失的后置操作,手动进入node_modules/microsoft-cognitiveservices-speech-sdk目录执行npm run postinstall即可。
  • 次优方案:全局固定安装稳定版npm-force-resolutions,让npx优先调用本地固定版本,避免临时拉取最新版触发超时
    npm install -g npm-force-resolutions@0.0.3
    
    全局安装完成后重新执行原安装命令即可,此时npx不会走临时拉取流程,0.0.3版本的超时阈值更高,配合正常网络基本不会触发报错。
  • 网络适配方案:修正.npmrc配置,同时换国内源降低拉取延迟
    之前你配置的timeout参数已经是npm的废弃配置,要控制包拉取超时需要用fetch-timeout参数,同时增加重试次数、更换国内镜像源,在项目根目录的.npmrc里添加如下配置:
    registry=https://registry.npmmirror.com/
    fetch-timeout=120000
    fetch-retries=5
    
    配置完成后清空npm缓存再重新安装:
    npm cache clean --force
    npm install microsoft-cognitiveservices-speech-sdk
    

避坑提醒:不要试图通过修改项目package.json的preinstall脚本覆盖依赖内的脚本,npm执行依赖生命周期脚本时只会读取依赖包自身的package.json配置,根目录的同名脚本不会在依赖安装阶段触发。

内容的提问来源于stack exchange,提问作者Woodsy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:51:27