gatsby#20389
原因是gatsby
生成的默认站点会依赖一个包pngquant-bin
gatsby-starter-default@0.1.0 └─┬ gatsby-plugin-sharp@2.6.1 └─┬ imagemin-pngquant@6.0.1 └── pngquant-bin@5.0.2
pngquant-bin
会根据不同的平台,去raw.githubusercontent.com
下载对应的二进制文件,当下载失败时,会从源码开始开始编译生成二进制文件,如果失败,则报错.
因为总所周知的原因,raw.githubusercontent.com
在国内是被墙的.而当我们又不具备能编译pngquant-bin
的环境时,导致安装失败.
在 imagemin/pngquant-bin#110 中有一个修复方案,可以使 bin 的下载地址可配置,不过好像并不顺利
经过 @Renchongyi 的提醒,可以通过设置HTTP_PROXY
或者用npm config set proxy
来设置代理,只是必须是http
协议的代理.支持的配置方式
yarn
的话,第一次安装失败之后,找到缓存中npm-pngquant-bin-5.0.2-6f34f3e89c9722a72bbc509062b40f1b17cda460-integrity/node_modules/pngquant-bin/lib/index.js
,修改下载源url
,将raw.githubusercontent.com/imagemin
修改为npm.taobao.org/mirrors
,然后重新安装即可.使用yarn cache dir
可以打印出yarn
缓存的位置Proxifier
的软件专门代理node
中的流量Nexus
私服的话,直接克隆pngquant-bin
,将下载源修改掉,发布到私服上即可.pngquant-bin
能够通过编译生成,不过这并非我所长,所以没法提供更多建议.