You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
结果还是报同样的错误,不应该啊,我有点迷;
于是再次谷歌 ,看到了 这个issues
下面有个人评论说: I fixed this by cnpm install gifsicle... it's quite strange, I run npm install with global VPN, it failed but worked out with cnpm
问题描述
最近在写一个 express 的服务端工程,要使用 gulp 自动化去处理工程中的资源文件,比如图片压缩 less处理什么的;
在安装 gulp-imagemin 模块时总是失败,终端中主要输出
gifsicle pre-build test failed
和gyp: No Xcode or CLT version detected!
这两个错误截图如下:
No Xcode or CLT
这个忘记截图,后来安装了xcode cli工具解决了gifsicle pre-build test failed compiling from source
谷歌了一下,了解到这是二进制源码构建失败的意思,多数因为网络原因:很多包将源码托管在 s3 服务器上,国内可能会被墙;
解决方案
我先尝试给终端设置代理:
执行
source ~/.bash_profile
再次尝试
npm install gifsicle --save
结果还是报同样的错误,不应该啊,我有点迷;
于是再次谷歌 ,看到了 这个issues
下面有个人评论说:
I fixed this by cnpm install gifsicle... it's quite strange, I run npm install with global VPN, it failed but worked out with cnpm
于是执行
npm install cnpm -g
,然后再次尝试cnpm install gifsicle --save
淦
!居然成了,为啥啊,我国自有国情?更新:终端代理成功 不需要安装cnpm
不写入
~/.bash_profile
直接将 Shadowsocks 中的终端代理配置 复制到终端中,这样也可以成功安装(如果你没有代理服务器的话,建议选择cnpm安装)gyp: No Xcode or CLT version detected!
这个是因为有些 npm 包比如我要安装的这个 gulp-imagemin 它里面依赖的 gifsicle 包就是直接把源码给用户使用时去编译,这时就用到了gyp, 具体关于gyp的可以看下知乎这篇问答。
我猜测是 gyp 编译时需要调用vsbuild, xcode等编译平台来编译,所以才会提示
No Xcode or CLT version detected
谷歌搜索后看到这么一篇回答 stackoverflow
解决方案: 移除旧版本的工具,然后安装新版本的工具。
The text was updated successfully, but these errors were encountered: