Gatsby - запускать функции во время сборки - PullRequest
1 голос
/ 11 ноября 2019

Я использую Gatsby с Netlify CMS, и мне нужно изменить данные, полученные с помощью ловушки Gatsby useStaticQuery.

Например, в Netlify CMS я позволяю пользователям определять, какие шрифты Google они хотят использовать дляразличные стили оформления (например, от h1 до h6, кнопки, основной текст и т. д.). Затем мне нужно импортировать шрифты в <head>, и для этого я запускаю довольно дорогую функцию, которая объединяет все семейства шрифтов и веса в |массив разделенных строк (например, "Open+Sans:400,500|Roboto:300|Montserrat:500,600,700"). Это дорого, так как мне нужно объединить все семейства шрифтов и веса, не допуская дубликатов.

У меня есть и несколько других вариантов использования. Например, я использую Material UI и мне нужно передать объект theme компоненту <ThemeProvider theme={theme}>. Для этого мне нужно изменить данные, полученные из useStaticQuery, чтобы создать объект theme.

Это действительно нужно только во время сборки, поскольку оно никогда не изменяется во время выполнения. Кроме того, в настоящее время вы не можете использовать useStaticQuery в wrapRootElement, поэтому эта функция будет запускаться при каждой загрузке страницы.

Есть ли способ запустить эту функцию во время сборки Gatsby, так чтовозвращаемое значение доступно как опора?

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