[英]Node.js imagemin on CentOS
我試圖使用Node.js imagemin壓縮我的服務器上的很多圖像。 我喜歡使用imagemin因為我知道如何將它指向特定的目錄。
我正在使用CentOS 6,當我運行我的文件時,我收到錯誤:
node_modules / imagemin / node_modules / imagemin-pngquant / node_modules / pngquant-bin / vendor / pngquant:/lib64/libc.so.6:未找到版本`GLIBC_2.14'
此外,當我安裝imagemin與npm install imagemin
,我得到了一個錯誤,說:
錯誤:pngquant無法構建,請確保已安裝libpng-dev
關於我能做些什么來解決這個問題的任何想法?
(問題事實上已經在評論中解決了 - 但為了完成和后代我發布了一個實際答案)。
錯誤:pngquant無法構建,請確保已安裝libpng-dev
此錯誤意味着系統缺少libpng
開發庫,這是安裝imagemin
Node.JS模塊所必需的。 要在CentOS 6上安裝它,您需要發出以下命令:
yum install libpng-devel
請注意,軟件包管理器(此處為yum
)和軟件包名稱( libpng-devel
)在不同的Linux發行版之間可能有所不同。
即使安裝了libpng-devel
我也遇到了與CentOS 7相同的問題。 看來這個包在node_modules/pngquant-bin/vendor/pngquant
中node_modules/pngquant-bin/vendor/pngquant
了一個預編譯的二進制程序,它與Linux安裝(CentOS 7最新版)不兼容。
我已經通過將此二進制文件替換為可用於CentOS 7的二進制文件來解決該問題。
我首先用yum
安裝官方包裝pngquant
。 然后我正在安裝節點模塊。 如果您願意,可以在安裝操作之前刪除node_modules
文件夾。 但不是必需的。
錯誤將照常顯示(程序文件尚未替換):
⚠ The `node_modules/pngquant-bin/vendor/pngquant` binary doesn't seem to work correctly ⚠ pngquant pre-build test failed ℹ compiling from source ✖ Error: pngquant failed to build, make sure that libpng-dev is installed at ChildProcess.exithandler (child_process.js:206:12) at emitTwo (events.js:106:13) at ChildProcess.emit (events.js:191:7) at maybeClose (internal/child_process.js:877:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
但是,在替換二進制文件后,一切都應該沒問題。
sh yum install libpng-devel pngquant npm install rm -rf node_modules/pngquant-bin/vendor/pngquant ln -s /usr/bin/pngquant node_modules/pngquant-bin/vendor/pngquant
之后你可以運行你喜歡的任何命令,“imagemin:dynamic”等。它應該可以正常工作。
一般來說,問題似乎在pngquant-bin
節點包內。 此解決方案也可能有助於其他Linux發行版。
解決方案本身是使用OS包管理器安裝官方支持的pngquant
版本 ,並在安裝后替換pngquant-bin
vendor文件夾中的二進制文件。
此外,最近有一個問題仍然與pngquant
npm包有關。 它似乎有一個錯誤的發布 - 將package.json
所需的pngquant
包鎖定到舊版本(最后正確運行的版本)。
以前的解決方案對我不起作用。 我正在使用centos 7.4
執行時執行
# npm install
我收到了錯誤:
✖錯誤:pngquant無法構建,請確保已安裝libpng-dev
在嘗試安裝libpng-devel
,它說它已經安裝好了。
解
如果使用舊版本,請更新nodejs和npm版本。
我已更新到
Nodejs版本
[root@hosting ~]# node -v
v8.10.0
npm版本
[root@hosting ~]# npm -v
5.7.1
檢查服務器上安裝的libpng-devel。
[root@hosting ~]# rpm -qa |grep libpng
的libpng-1.5.13-7.el7_2.x86_64
的libpng-devel的-1.5.13-7.el7_2.x86_64
如果您使用的是epel repo,那么它將安裝最新版本。 有關更多libpng發布檢查
[root@hosting ~]# yum list |grep libpng
我安裝了
yum install libpng12-1.2.50-10.el7.x86_64 libpng12-devel-1.2.50-10.el7.x86_64
移動節點模塊
mv node_modules node_modules_bak
然后輸入
# npm install
以下是我為我的案例解決問題的方法:
刪除node_modules
:
rm -rf node_modules
安裝以下依賴項:
sudo dnf install libpng-devel pngquant gcc make libpng12 libpng12-devel
重建依賴項。 我用yarn
:
yarn
在我的情況下,我在Amazon WS上使用CentOS實例,我在這里面臨同樣的問題。 我通過安裝libpng12和libpng12-devel(yum install libpng12 libpng12-devel)來解決它,然后運行yarn install(或npm install)並且包安裝正確。
只是這個!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.