Вы пытались выяснить, почему изменение в вашем коде не отображается, у вас открыты тысячи вкладок, а затем вас внезапно поражает… вместо этого у вас открыт рабочий URL.
Я был там, невероятно легко потратить огромные периоды времени и продуктивности, пытаясь решить это, только чтобы понять, что вы даже не смотрели на местную среду разработки. Итак, у меня есть отличный совет, который поможет убедиться, что этого больше никогда не повторится.
Gatsby позволяет указать путь к изображению для значка, а также цвет фона и цвет темы для манифеста сайта. Он доступен через плагин gatsby-plugin-manifest
.
Вы можете добавить его в свой gatsby-config
обычным способом, и он может выглядеть примерно так:
module.exports = { plugins: [ { resolve: `gatsby-plugin-manifest`, options: { name: `GatsbyJS`, short_name: `GatsbyJS`, start_url: `/`, background_color: `#f7f0eb`, theme_color: `#a2466c`, // Enables "Add to Homescreen" prompt and disables browser UI (including back button) // see https://developers.google.com/web/fundamentals/web-app-manifest/#display display: `standalone`, icon: `src/images/icon.png`, // This path is relative to the root of the site. }, }, ], }
Это шаблон, который будет использоваться по умолчанию, если вы воспользуетесь стартовой программой или учебником на www.gatsbyjs.org - не очень полезно для решения этих надоедливых проблем с дифференциацией.
Мы собираемся написать две небольшие функции, которые будут принимать аргумент для NODE_ENV
и определять, какой цвет и изображение следует использовать. Затем мы будем использовать их вместо шестнадцатеричного значения цвета и пути изображения, указанного выше.
const faviconSelector = (env) => { return env === 'production' ? 'src/images/icon.png' : env === 'staging' ? 'src/images/icon-staging.png' : 'src/images/icon-development.png' } const envColourSelector = (env) => { return env === 'production' ? '#7b41c1' // Purple : env === 'staging' ? '#405ac1' // Blue : '#c13f5e' // Red }
Я стараюсь, чтобы мои цвета выделялись и не были слишком похожи, также стоит сделать вашу локальную среду разработки более радикальной (инвертированной) или сделать оттенок красного, чтобы действительно предупредить вас о том, что вы работаете над состоянием разработки вашего приложение / сайт.
Теперь мы помещаем эти функции в нашу конфигурацию:
const { NODE_ENV } = process.env module.exports = { plugins: [ { resolve: `gatsby-plugin-manifest`, options: { name: `GatsbyJS`, short_name: `GatsbyJS`, start_url: `/`, background_color: envColourSelector(NODE_ENV), theme_color: envColourSelector(NODE_ENV), // Enables "Add to Homescreen" prompt and disables browser UI (including back button) // see https://developers.google.com/web/fundamentals/web-app-manifest/#display display: `standalone`, icon: faviconSelector(NODE_ENV), // This path is relative to the root of the site. }, }, ], }
Вы можете протестировать новую конфигурацию, изменив значение NODE_ENV
и обновив вкладку браузера.
NODE_ENV=staging gatsby develop
or NODE_ENV=production gatsby build && gatsby serve
or gatsby develop
Есть ли у вас какие-нибудь советы по развитию? Оставляйте их в комментариях, я всегда в поисках новых способов повышения своей продуктивности.