原文:https://www.bluepost.cn/jianzhan/npm-err-failed-at-the-postinstall-script.html
近日在升级npm安装包imagemin-webpack-plugin和imagemin-mozjpeg时,分别报错npm ERR! Failed at the gifsicle@4.0.1 postinstall script.和npm ERR! Failed at the mozjpeg@7.0.0 postinstall script. 将npm register改为国内淘宝镜像还是无法解决该问题。
经过分析后发现是由于安装这些包时需要安装依赖包,而其中部分依赖包需要从GitHub上下载,而GitHub的资源库DNS有问题,导致这些依赖包无法安装而报错。
找到原因是由于Github DNS的问题。我们在本地hosts文件中(路径C:\Windows\System32\drivers\etc)添加以下内容(Github相关域名的解析地址),然后用npm清楚所有缓存(清除命令为:>npm cache clean -f),之后再重新安装就成功了。
192.30.255.112 gist.github.com
192.30.255.112 github.com
192.30.255.112 www.github.com
151.101.56.133 avatars0.githubusercontent.com
151.101.56.133 avatars1.githubusercontent.com
151.101.56.133 avatars2.githubusercontent.com
151.101.56.133 avatars3.githubusercontent.com
151.101.56.133 avatars4.githubusercontent.com
151.101.56.133 avatars5.githubusercontent.com
151.101.56.133 avatars6.githubusercontent.com
151.101.56.133 avatars7.githubusercontent.com
151.101.56.133 avatars8.githubusercontent.com
151.101.56.133 camo.githubusercontent.com
151.101.56.133 cloud.githubusercontent.com
151.101.56.133 gist.githubusercontent.com
151.101.56.133 marketplace-screenshots.githubusercontent.com
151.101.56.133 raw.githubusercontent.com
151.101.56.133 repository-images.githubusercontent.com
151.101.56.133 user-images.githubusercontent.com
特别强调:以上Github DNS内容可能会变动。如果修改后再次重装还是报错,可以在github.com搜索最新的hosts文件,尝试用不同的hosts文件内容,直到执行成功为止。
更改hosts文件后记得刷新本地DNS。打开cmd,输入以下命令:
Windows:ipconfig /flushdns
Mac:sudo killall -HUP mDNSResponder
(我另外还加了一条命令:用npm清楚所有缓存(清除命令为:>npm cache clean -f) )