配置/未配置代理时安装sass-embedded均遇ECONNREFUSED错误求助
公司代理环境下sass-embedded安装失败的解决办法
问题场景
执行以下命令安装sass-embedded:
npm init -y npm install sass-embedded --save-dev
在公司代理环境中,设置npm代理后安装报错;删除代理配置后npm速度极慢,等待20分钟后仍出现相同错误。错误日志核心为:
npm ERR! FetchError: request to https://github.com/sass/dart-sass-embedded/releases/download/1.54.4/sass_embedded-1.54.4-windows-x64.zip failed, reason: connect ECONNREFUSED 140.82.121.3:443
其他依赖包(如gulp)可通过代理正常安装,无代理的个人电脑能顺利安装sass-embedded,推测是postinstall阶段的二进制包下载逻辑未读取npm的代理配置。
可行解决方案
1. 手动指定二进制包路径跳过自动下载
- 找到对应版本的
sass_embedded-1.54.4-windows-x64.zip压缩包,解压后取出sass_embedded.exe,放到项目内的自定义目录(比如./bin/) - 安装前通过环境变量指定该二进制文件路径:
set SASS_EMBEDDED_BINARY_PATH=./bin/sass_embedded.exe && npm install sass-embedded --save-dev
2. 设置系统级代理环境变量
sass-embedded的postinstall脚本使用minipass-fetch发起请求,该工具会读取系统的HTTP/HTTPS代理环境变量,而非仅依赖npm配置:
- 在命令行临时设置代理:
set HTTP_PROXY=http://你的代理地址:端口 set HTTPS_PROXY=http://你的代理地址:端口
- 执行安装命令:
npm install sass-embedded --save-dev
3. 配置npm的fetch相关代理参数
尝试让npm的fetch工具强制使用代理,执行以下配置命令:
npm config set proxy http://你的代理地址:端口 npm config set https-proxy http://你的代理地址:端口 npm config set fetch-retry-agent http://你的代理地址:端口
配置完成后重新执行安装命令即可。
内容的提问来源于stack exchange,提问作者DoubleVoid
相关产品推荐
相关产品推荐

