簡體   English   中英

CentOS上的Node.js imagemin

[英]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'

此外,當我安裝imageminnpm 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/pngquantnode_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM