Гэтсби не будет отображать изображения в Markdown, но все остальное работает - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь использовать Gatsby для создания небольшого веб-сайта для отображения страниц на основе Markdown. В основном это работает, но я не могу заставить его отображать изображения. Примечательно, что точно такой же проект Gatsby (загруженный из того же репо git, без локальных изменений) отлично работает для других в моей команде. Так что это что-то в моей локальной конфигурации, но у меня нет идей, где искать.

Файл example.md из репозитория выглядит так:

[a bunch of text]

![](img/image.png)

[a bunch more text]

Когда я пытаюсь чтобы запустить gatsby develop, я получаю следующую ошибку:

...
info changed file at .../example.md
success createPages - 0.021s

 ERROR 

Processing .../image.png failed

Original error:




  WorkerError: Processing .../image.png failed
  Original error:

  - jobs-manager.js:314 exports.enqueueJob
    [internal]/[gatsby]/dist/utils/jobs-manager.js:314:23

  - next_tick.js:68 process._tickCallback
    internal/process/next_tick.js:68:7


not finished run queries - 0.224s
not finished Generating image thumbnails - 0.201s

(sharp:89899): GLib-CRITICAL **: 17:00:41.183: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(sharp:89899): GLib-CRITICAL **: 17:00:41.194: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(sharp:89899): GLib-CRITICAL **: 17:00:41.270: g_hash_table_lookup: assertion 'hash_table != NULL' failed

3-18-2020 devusr $

Однако, если я изменю уценку на

[a bunch of text]

img/image.png FIXME LATER

[a bunch more text]

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

Я попытался сделать gatsby clean, а затем gatsby develop. Я также обновил узел и npm, плюс все, что управляется npm и homebrew. Билет с резким о подобной ошибке просто сказал, что проблема не в них, и не имел много дополнительной информации, чтобы использовать для продолжения поиска. Что еще я могу сделать здесь?

1 Ответ

1 голос
/ 19 марта 2020

A. van Hugten был на правильном пути в комментариях .

Если присмотреться к проблеме GitHub , связанной с ней, я нашел несколько альтернативных решений, которые сработали для разных людей. Мне пришлось сделать два из них вместе, прежде чем моя проблема была решена. Один из них ничего не исправил.

Решение, часть 1 из 2:

Редактировать gatsby-node.js и добавить следующее:

const sharp = require('sharp')

sharp.cache(false)
sharp.simd(true)

Решение, часть 2 из 2:

Запустите следующую команду в командной строке:

rm -rf node_modules
rm package-lock.json
npm cache clear --force
npm cache clean --force
npm install
gatsby clean
gatsby develop

Я не использую пряжу, поэтому у меня не было файл yarn.lock, но если вы это сделаете, вам может потребоваться удалить его одновременно с package-lock.json. Также npm cache clear и npm cache clean являются псевдонимами друг друга, поэтому нужен только один, но я был параноиком.

Побочным эффектом вышеуказанного решения является то, что страницы, обслуживаемые Гэтсби, больше не автоматически обновляются sh на смену. Я должен вручную остановить Гэтсби и сделать еще один gatsby develop, чтобы загрузить изменения. Но лучше, чем вообще ничего не делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...