Nodejs Не удается найти модуль "../build/Release/canvas"

Я установил Каир и узел-холст. Я попробовал все, но все еще не могу найти модуль.

sudo apt-get install libcairo2-dev
sudo npm install canvas
sudo npm install canvas -g

Если я бегу require('canvas')Я получаю эту ошибку:

Error: Cannot find module '../build/Release/canvas'
    at Function._resolveFilename (module.js:332:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at Object.<anonymous> (/home/tomas/node_modules/canvas/lib/bindings.js:2:18)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:32)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)

Я использую Ubuntu Linux

Заранее спасибо.

9 ответов

В моем случае мне нужно потратить много времени, чтобы решить эту проблему.

Я просто использую "npm uninstall canvas", а затем устанавливаю с помощью "npm i canvas"

Попробуйте это, если вышеуказанный вариант вам не подходит.

Казалось, что installскрипт тоже не был вызван в моем случае. Вместо удаления файла блокировки я просто вызвал скрипт вручную, который решил проблему в моем случае (по крайней мере, временно).

Следовательно, если canvasпакет уже установлен, перейдите в / node_modules / canvas / и запустите npm run install который создает каталог сборки.

У меня такая же проблема. Проблема заключалась в том, что install сценарий для node-canvas никогда не был казнен, поэтому build папка отсутствовала.

В моем случае удаление yarn.lock файл был решением, так как он пропустил node-canvas установка пакета по какой-то причине. Однажды я позволил npm позаботьтесь о пакетах, он успешно установлен node-canvasпобежал install скрипт и папка сборки снова появились.

Проблема здесь выглядит следующим образом: 1. Ваши модули узлов установлены в другом месте, но среда выполнения node.js ищет его в другом месте. Проверьте NODE_PATH и посмотрите, так ли это.

См. Загрузку модуля, объясненную в http://nodejs.org/api/modules.html

Вы можете попробовать это:

  • Удалить папку NodeModule
  • Используйте версию узла 14
  • Запуск установки зависимостей

Та же проблема в моем приложении nextjs. В моем случае. я установилreact-pdfpackage, то возникла эта проблема.

Мое решение: просто уведомить webapck, чтобы он игнорировалcanvasмодуль

Добавьте следующие параметры веб-пакета вnext.config.js

      const nextConfig = {
  webpack(config){
    config.externals.push('canvas')
    return config
  }
};

sudo apt-get install libpixman-1-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev libgif-dev  libjpeg-dev

Если вы используете Ubuntu, попробуйте установить выше lib, а затем установите canvas.work отлично для меня.

Если вы используете cnpm, установите холст. попробуйте нпм.

В моем случае:

      rm -rf node_modules
rm package-lock.json
npm install

:D

У меня была аналогичная проблема, но я использовал предварительно созданный холст, который является заменой холста, и я исправил его для этого:npm install -g node-gyp, а затем перестройка node-gyp в терминале

Другие вопросы по тегам