Ошибка при обновлении npm: двоичный файл pngquant не работает правильно

Я получаю следующую ошибку с моей командой npm update:

> [email protected] postinstall /var/www/pp/20180315202846/node_modules/pngquant-bin
> node lib/install.js

  ⚠ The '/var/www/pp/20180315202846/node_modules/pngquant-bin/vendor/pngquant' binary doesn't seem to work correctly
  ⚠ pngquant pre-build test failed
  ℹ compiling from source
  ✔ pngquant pre-build test passed successfully
  ✖ RequestError: pngquant failed to build, make sure that libpng-dev is installed
    at ClientRequest.req.once.err (/var/www/pp/20180315202846/node_modules/pngquant-bin/node_modules/got/index.js:111:21)
    at Object.onceWrapper (events.js:272:13)
    at ClientRequest.emit (events.js:180:13)
    at ClientRequest.onConnect (/var/www/pp/20180315202846/node_modules/pngquant-bin/node_modules/tunnel-agent/index.js:168:23)
    at Object.onceWrapper (events.js:272:13)
    at ClientRequest.emit (events.js:180:13)
    at Socket.socketOnData (_http_client.js:476:11)
    at Socket.emit (events.js:180:13)
    at addChunk (_stream_readable.js:269:12)
    at readableAddChunk (_stream_readable.js:256:11)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: 'node lib/install.js'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Я уже сделал:

 apt-get install libpng-dev

но я все еще получаю эту ошибку. Есть идеи? (Мое распределение - Debian 9.2)

Ответ 1

Для Ubuntu вам нужно запустить:

wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb \
  && sudo dpkg -i /tmp/libpng12.deb \
  && rm /tmp/libpng12.deb

Ответ 2

Возможно, вы найдете некоторую помощь здесь по оригинальной проблеме.

https://github.com/imagemin/pngquant-bin/issues/78

Он является рекомендуемым исправлением: (скопируйте/вставьте из: https://github.com/imagemin/pngquant-bin/issues/78#issuecomment-374192838) Как сказал @velu76 и @sory19, я следовал их методу:

Sudo apt -g и установить libpng-dev''npm install -g pngquant-bin'

Поскольку у меня уже была "npm install" в моей папке repo/project, я затем запускал sudo rm -rf node_modules '

то, все еще в моей папке репозитория/проекта'npm install --no-bin-links '

И это работает прямо сейчас.

Я не знаю, действительно ли это временное решение, но я могу сейчас работать.

Ответ 3

TL;DR;
использовать узел: последний вместо узла: альпийский для изображения докеров

-
Привет, я использовал узел докеры image: alpine, и он также падает вчера. Кажется, проблема связана с каким-то внешним пакетом, который требует laravel-mix. Я тестировал на узле: alpine node: 8.10.0-alpine node: 8.8.1-alpine ничего не работает. Я тестировал laravel-mix 0.11.4 и 0.12.1 и 1.0 ничего не работает. Но когда я переключаюсь с узла: альпийский на узел: последний, он работает. Надеюсь это поможет

Ответ 4

Вы можете исправить эту ошибку, выполнив следующую команду:

sudo npm install -g name-of-package --unsafe-perm=true --allow-root