sharp.js安裝過(guò)程中遇到的問(wèn)題總結(jié)
由于Sharp基于C++的libvips庫(kù)來(lái)實(shí)現(xiàn),本地Mac開(kāi)發(fā)完后在部署時(shí)安裝sharp模塊時(shí)會(huì)基于測(cè)試環(huán)境Liunx平臺(tái)編譯安裝,測(cè)試環(huán)境安裝時(shí)發(fā)現(xiàn)請(qǐng)求github下載libvips-8.9.1-linux-x64.tar.gz,所以只能失敗告終。后來(lái)看源碼和文檔發(fā)現(xiàn)sharp項(xiàng)目考慮周到優(yōu)先使用緩存和使用sharp_dist_base_url參數(shù),這樣可以先將libvips-8.9.1-linux-x64.tar.gz下載到內(nèi)網(wǎng)。
npm緩存路徑使用npm config get cache 查詢。新建_libvips,把libvips-8.9.0-linux-x64.tar.gz放進(jìn)去。
Using cached /root/.npm/_libvips/libvips-8.9.0-linux-x64.tar.gz,這樣安裝時(shí)就不會(huì)再請(qǐng)求了。
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
表面上看使用以上方法解決請(qǐng)求不到依賴包的問(wèn)題事情就搞定了,但遠(yuǎn)沒(méi)這么簡(jiǎn)單。
由于需要Liunx環(huán)境來(lái)安裝編譯sharp,自然想到用虛擬機(jī)或Docker,通過(guò)Parallels Desktop安裝下載好的CentOS-8.1.1911-x86_64-boot.iso,提示無(wú)法識(shí)別鏡像,沒(méi)道理啊。
后來(lái)多次嘗試發(fā)現(xiàn)可選擇其它選擇中的默認(rèn)Linux來(lái)安裝但啟動(dòng)不了系統(tǒng),研究一翻把CD-ROM啟動(dòng)指向到CentOS-8.1.1911-x86_64-boot.iso重啟就能使用CDROM來(lái)啟動(dòng)安裝CentOS。
安裝完系統(tǒng)心想這下應(yīng)該完美解決了,直接就上npm i sharp ,事情到這又是一堆error,又遇到npm安裝異常報(bào)錯(cuò),記錄如下。
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賬戶,也遇到異常提示。為了避免這種情況,專門建一個(gè)用于運(yùn)行 npm 的高權(quán)限用戶;要么加 --unsafe-perm 參數(shù),這樣就不會(huì)切換到 nobody 。
解決:npm i --unsafe-perm --allow-root
3、前面講過(guò)由于安裝sharp需要編譯C++ libvips,需要node-gyp
解決:npm install --global node-gyp
4、Error make:g++:not find
Linux安裝后沒(méi)有make需要安裝
解決:yum install -y make gcc-c++
5、sudo npm install 提示 sudo: npm:找不到命令。
由于npm和node是解壓安裝沒(méi)有安裝到系統(tǒng)/use/bin下,所以通過(guò)軟鏈解決
解決:
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 訪問(wèn)Parallels Desktop虛擬機(jī)Linux
在虛擬機(jī)中使用ifconfig查詢IP后回到Mac登錄到Linux
ssh root@10.211.x.x
同步文件
從本地復(fù)制到遠(yuǎn)程
# 拷貝文件
scp /home/test/test.txt root@192.168.0.2:/home/test/
# 拷貝目錄
scp -r /home/test/ root@192.168.0.2:/home/test/
從遠(yuǎn)程復(fù)制到本地
# 拷貝文件
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安裝過(guò)程中遇到的問(wèn)題總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于sharp.js安裝問(wèn)題總結(jié)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Koa2微信公眾號(hào)開(kāi)發(fā)之消息管理
這篇文章主要介紹了Koa2微信公眾號(hào)開(kāi)發(fā)之消息管理,這一節(jié)我們就來(lái)看看公眾號(hào)的消息管理。并實(shí)現(xiàn)一個(gè)自動(dòng)回復(fù)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Node.js全局對(duì)象Global的實(shí)現(xiàn)
在Nodejs下全局變量和全局函數(shù)都是可以使用global來(lái)訪問(wèn)到的,本文主要介紹了Node.js全局對(duì)象Global的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12node.js+express留言板功能實(shí)現(xiàn)示例
本文介紹基于nodejs+express+art-template的留言板功能。包含列表界面、添加界面和發(fā)送留言功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Node.js中如何合并兩個(gè)復(fù)雜對(duì)象詳解
下面這篇文章主要給大家介紹了在Node.js中如何合并兩個(gè)復(fù)雜對(duì)象的方法,文中給出了詳細(xì)的示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友可以參考,下面來(lái)一起看看吧。2016-12-12node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù)
這篇文章主要介紹了node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù),講解的十分詳細(xì),也給出了很多的實(shí)例,是篇非常不錯(cuò)的文章,這里推薦給大家。2014-11-11