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 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
javascript 异步页面查询实现代码(asp.net)
May 26 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
Mar 24 Javascript
AngularJS 指令详细介绍
Jul 27 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
Jan 23 Javascript
vue项目引入Iconfont图标库的教程图解
Oct 24 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
Oct 29 Javascript
webpack打包多页面的方法
Nov 30 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
Apr 04 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
JavaScript 学习笔记(十五)
2010/01/28 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
java直接调用python脚本的例子
2014/02/16 Python
python循环监控远程端口的方法
2015/03/14 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
简单的编程0基础下Python入门指引
2015/04/01 Python
python模块smtplib学习
2018/05/22 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
服装行业创业计划书范文
2014/02/05 职场文书
幼儿园家长寄语
2014/04/02 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
财产分割协议书
2016/03/22 职场文书
Python matplotlib绘制雷达图
2022/04/13 Python