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 相关文章推荐
屏蔽Flash右键信息的js代码
Jan 17 Javascript
深入理解Javascript闭包 新手版
Dec 28 Javascript
字符串的replace方法应用浅析
Dec 06 Javascript
jQuery模拟超链接点击效果代码
Apr 21 Javascript
Jquery读取URL参数小例子
Aug 30 Javascript
Jquery 获取对象的几种方式介绍
Jan 17 Javascript
Bootstrap框架实现广告轮播效果
Nov 28 Javascript
Node.js的特点详解
Feb 03 Javascript
原生js实现验证码功能
Mar 16 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
May 22 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 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
用ODBC的分页显示
2006/10/09 PHP
php pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
自动更新作用
2006/10/08 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
vue使用v-for实现hover点击效果
2018/09/29 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python随机生成指定长度密码的方法
2015/04/04 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
鲜果饮品店创业计划书
2014/01/21 职场文书
30岁生日感言
2014/01/25 职场文书
元旦联欢会感言
2014/03/04 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2014年司法局工作总结
2014/12/11 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL