安装ts-jest遇Socket超时错误,AWS CDK init执行失败求助
Socket超时导致ts-jest安装失败及AWS CDK init卡住的问题
环境信息
- npm 8.19.3
- AWS CDK 2.60.0
- Node.js 18.13.0
问题重现
执行cdk init sample-app --language typescript或npm i -D ts-jest@"<23.10.0"均失败,报错为FETCH_ERROR,日志显示请求https://registry.npmjs.org/ts-jest时Socket超时,CDK init卡在idealTree:cdktest: sill idealTree buildDeps状态。
已尝试的无效操作
npm cache clean --force- 移除proxy及https-proxy配置
npm cache verify
可尝试的修复步骤
1. 切换npm registry至国内镜像
官方registry访问不稳定是常见原因,切换到国内镜像提升连接稳定性:
npm config set registry https://registry.npmmirror.com/
完成安装后若需切回官方镜像,执行:
npm config set registry https://registry.npmjs.org/
2. 延长npm网络超时时间
npm默认超时阈值较短,手动调大超时参数:
npm config set fetch-retry-mintimeout 60000 npm config set fetch-retry-maxtimeout 120000
或在安装时临时指定超时:
npm i -D ts-jest@"<23.10.0" --timeout 120000
3. 排查防火墙/杀毒软件拦截
本地防火墙、杀毒软件可能拦截npm的网络请求,暂时关闭相关软件后重试操作。
4. 改用yarn处理依赖安装
若npm网络问题持续,换用yarn执行依赖安装:
# 全局安装yarn npm install -g yarn # 初始化CDK项目后用yarn安装依赖 cdk init sample-app --language typescript yarn install # 或直接用yarn安装ts-jest yarn add -D ts-jest@"<23.10.0"
5. 升级ts-jest至兼容Node.js 18的版本
ts-jest 23.x版本较老旧,与Node.js 18存在兼容性风险,尝试安装适配新版本Node.js的ts-jest版本:
npm i -D ts-jest@29.x
之后重新执行CDK init操作。
内容的提问来源于stack exchange,提问作者ahn
相关产品推荐
相关产品推荐

