Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

记 gulp-imagemin 安装时遇到的问题 #8

Open
frmachao opened this issue Apr 29, 2020 · 0 comments
Open

记 gulp-imagemin 安装时遇到的问题 #8

frmachao opened this issue Apr 29, 2020 · 0 comments
Labels

Comments

@frmachao
Copy link
Owner

frmachao commented Apr 29, 2020

问题描述

本地操作系统: Mac OS v10.15.4

node.js v12.16.1 npm v6.13.4

最近在写一个 express 的服务端工程,要使用 gulp 自动化去处理工程中的资源文件,比如图片压缩 less处理什么的;

在安装 gulp-imagemin 模块时总是失败,终端中主要输出gifsicle pre-build test failedgyp: No Xcode or CLT version detected!这两个错误

截图如下:
gifsicle pre-build test failed
No Xcode or CLT 这个忘记截图,后来安装了xcode cli工具解决了

gifsicle pre-build test failed compiling from source

谷歌了一下,了解到这是二进制源码构建失败的意思,多数因为网络原因:很多包将源码托管在 s3 服务器上,国内可能会被墙;

解决方案

我先尝试给终端设置代理:
JTWDGF.png

// 复制到 ~/.bash_profile 中我使用的mac os 默认的 zsh(这里我配置错误,后来才知道从 macOS Catalina 版开始,Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shel)
 export http_proxy=http://127.0.0.1:1087
 export https_proxy=http://127.0.0.1:1087

执行 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

!居然成了,为啥啊,我国自有国情?

JTfayd.png

更新:终端代理成功 不需要安装cnpm

不写入 ~/.bash_profile 直接将 Shadowsocks 中的终端代理配置 复制到终端中,这样也可以成功安装(如果你没有代理服务器的话,建议选择cnpm安装)

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;
然后接着执行
 npm i gulp-imagemin -D

gyp: No Xcode or CLT version detected!

这个是因为有些 npm 包比如我要安装的这个 gulp-imagemin 它里面依赖的 gifsicle 包就是直接把源码给用户使用时去编译,这时就用到了gyp, 具体关于gyp的可以看下知乎这篇问答

我猜测是 gyp 编译时需要调用vsbuild, xcode等编译平台来编译,所以才会提示No Xcode or CLT version detected

谷歌搜索后看到这么一篇回答 stackoverflow

解决方案: 移除旧版本的工具,然后安装新版本的工具。

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant