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 相关文章推荐
用jquery实现下拉菜单效果的代码
Jul 25 Javascript
在jquery中combobox多选的不兼容问题总结
Dec 24 Javascript
js打开新窗口方法整理
Feb 17 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
javascript面向对象特性代码实例
Jun 12 Javascript
D3.js实现雷达图的方法详解
Sep 22 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 Javascript
微信小程序自定义弹窗wcPop插件
Nov 19 Javascript
微信公众号服务器验证Token步骤图解
Dec 30 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 截取字符串专题集合
2010/08/19 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
Java面试题汇总
2015/12/06 面试题
三个儿子教学反思
2014/02/03 职场文书
说明书范文
2014/05/07 职场文书
争先创优演讲稿
2014/09/15 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
国庆横幅标语
2014/10/08 职场文书
思想品德评语大全
2014/12/31 职场文书
六年级作文之自救
2019/12/19 职场文书
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫
Redis主从复制操作和配置详情
2022/09/23 Redis