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 相关文章推荐
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
jquery select(列表)的操作(取值/赋值)
Mar 16 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
SVG描边动画
Feb 23 Javascript
基于js 本地存储(详解)
Aug 16 Javascript
layui的table单击行勾选checkbox功能方法
Aug 14 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
Aug 18 Javascript
详解 TypeScript 枚举类型
Nov 02 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
php文件上传类的分享
2017/07/06 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
js css自定义分页效果
2017/02/24 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python函数中定义参数的四种方式
2014/11/30 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
使用python3实现操作串口详解
2019/01/01 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
财务管理职业生涯规划书
2014/02/26 职场文书
绿色城市实施方案
2014/03/19 职场文书
2014年医生工作总结
2014/11/21 职场文书
答谢词范文
2015/01/05 职场文书
借条如何写
2015/05/26 职场文书
英语演讲开场白
2015/05/29 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
python如何读取和存储dict()与.json格式文件
2022/06/25 Python