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 表单验证扩展(四)
Oct 20 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
Sep 29 Javascript
jQuery找出网页上最高元素的方法
Mar 20 Javascript
javascript实现淘宝幻灯片广告展示效果
Apr 27 Javascript
Angularjs按需查询实例代码
Oct 30 Javascript
js时间戳与日期格式之间相互转换
Dec 11 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
微信小程序webview 脚手架使用详解
Jul 22 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
抖音短视频(douyin)去水印工具的实现代码
Mar 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 gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
vue中activated的用法
2021/01/03 Vue.js
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
如何做好总经理助理
2013/11/12 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python