CodeSandbox - https://codesandbox.io/s/jj597mrvmw
У меня проблема с некоторыми данными, возвращенными с внешнего API на мой GatsbyJS / ReactJS сайт.
Точнее говоря, проблема заключается в обработке изображений с gatsby-image
и gatsby-plugin-sharp
с использованием API ...GatsbyImageSharpFluid
для GraphQL запросов.
Из 1000 изображенийкажется, что только 1 является проблематичным, возвращая ошибку
Errors:
icc_transform: no input profile
vips_colourspace: no known route from 'cmyk' to 'srgb'
Я мог бы просто отфильтровать это изображение, но обеспокоен тем, что будущие изображения в виде обновлений API могут вызвать ту же проблему.
Как мне
- Исправить эту ошибку, представленную
sharp
, чтобы изображение могло быть обработано?или filter
изображений, которые возвращают эту ошибку при обработке createRemoteFileNode
, или - Пропуск проблемных изображений в
catch (error)
или - Любые другие мысли / решения
createRemoteFileNode
в пределах gatsby-node.js
как
exports.sourceNodes = async ({ actions, store, cache, createNodeId }) => {
const { createNode, createNodeField } = actions;
const { data } = await axios.get(API_URI);
for (const event of data._embedded.events) {
let fileNode;
let output = [];
let filterResults = event.images.filter(e => e.width >= 1900);
output.push(...filterResults);
try {
fileNode = await createRemoteFileNode({
url: output[0].url,
cache,
store,
createNode,
createNodeId,
});
await createNodeField({
node: fileNode,
name: 'EventImage',
value: 'true'
});
await createNodeField({
node: fileNode,
name: 'name',
value: event.name
});
} catch (error) {
console.warn('error creating node', error);
}
}
};