sharp.js安装过程中遇到的问题总结


Posted in Javascript onApril 02, 2020

由于Sharp基于C++的libvips库来实现,本地Mac开发完后在部署时安装sharp模块时会基于测试环境Liunx平台编译安装,测试环境安装时发现请求github下载libvips-8.9.1-linux-x64.tar.gz,所以只能失败告终。后来看源码和文档发现sharp项目考虑周到优先使用缓存和使用sharp_dist_base_url参数,这样可以先将libvips-8.9.1-linux-x64.tar.gz下载到内网。

npm缓存路径使用npm config get cache 查询。新建_libvips,把libvips-8.9.0-linux-x64.tar.gz放进去。

Using cached /root/.npm/_libvips/libvips-8.9.0-linux-x64.tar.gz,这样安装时就不会再请求了。

npm config set sharp_dist_base_url "https://hostname/path/"

或者 SHARP_DIST_BASE_URL=http://172.20.x.x npm i --unsafe-perm --allow-root

表面上看使用以上方法解决请求不到依赖包的问题事情就搞定了,但远没这么简单。

由于需要Liunx环境来安装编译sharp,自然想到用虚拟机或Docker,通过Parallels Desktop安装下载好的CentOS-8.1.1911-x86_64-boot.iso,提示无法识别镜像,没道理啊。

后来多次尝试发现可选择其它选择中的默认Linux来安装但启动不了系统,研究一翻把CD-ROM启动指向到CentOS-8.1.1911-x86_64-boot.iso重启就能使用CDROM来启动安装CentOS。

安装完系统心想这下应该完美解决了,直接就上npm i sharp ,事情到这又是一堆error,又遇到npm安装异常报错,记录如下。

1、gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

解决:npm config set python /path/to/executable/python2.7

2、stack Error: EACCES: permission denied, mkdir

由于安装Linux使用的用户root账户,也遇到异常提示。为了避免这种情况,专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,这样就不会切换到 nobody 。

解决:npm i --unsafe-perm --allow-root

3、前面讲过由于安装sharp需要编译C++ libvips,需要node-gyp

解决:npm install --global node-gyp

4、Error make:g++:not find

Linux安装后没有make需要安装

解决:yum install -y make gcc-c++

5、sudo npm install 提示 sudo: npm:找不到命令。

由于npm和node是解压安装没有安装到系统/use/bin下,所以通过软链解决

解决:

ln -s /home/soft/node-v10.6.0/bin/npm /usr/bin/npm

ln -s /home/soft/node-v10.6.0/bin/np /usr/bin/node

6、Mac 访问Parallels Desktop虚拟机Linux

在虚拟机中使用ifconfig查询IP后回到Mac登录到Linux

ssh root@10.211.x.x

同步文件

从本地复制到远程
# 拷贝文件
scp /home/test/test.txt root@192.168.0.2:/home/test/
# 拷贝目录
scp -r /home/test/ root@192.168.0.2:/home/test/
从远程复制到本地
# 拷贝文件
scp root@192.168.0.2:/home/test/ /home/test/test.txt
# 拷贝目录
scp -r root@192.168.0.2:/home/test/ v/home/test/

以上就是sharp.js安装过程中遇到的问题总结的详细内容,更多关于sharp.js安装问题总结的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
javascript new一个对象的实质
Jan 07 Javascript
一个简单的JavaScript数据缓存系统实现代码
Oct 24 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
JavaScript的Number对象的toString()方法
Dec 18 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
javascript编写简易计算器
May 06 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
Angularjs单选框相关的示例代码
Aug 17 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
用webpack4开发小程序的实现方法
Jun 04 Javascript
js实现橱窗展示效果
Jan 11 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
Apr 01 #jQuery
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 #Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
Apr 01 #Javascript
js实现数据导出为EXCEL(支持大量数据导出)
Mar 31 #Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 #Javascript
Vue-router 报错NavigationDuplicated的解决方法
Mar 31 #Javascript
js实现整体缩放页面适配移动端
Mar 31 #Javascript
You might like
php上传图片存入数据库示例分享
2014/03/11 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
javascript计时器详解
2015/02/28 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
python读文件的步骤
2019/10/08 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
python3中rank函数的用法
2019/11/27 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
linux比较文件内容的命令是什么
2015/09/23 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
微型企业创业投资计划书
2014/01/10 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
企业员工培训感言
2014/02/26 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
委托协议书范本
2014/04/22 职场文书
大学入学感言
2015/08/01 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
python前后端自定义分页器
2022/04/13 Python
德生2P3收音机开箱评测
2022/04/30 无线电