Estoy usando un gatsby-plugin-google-tagmanager para el análisis de mi sitio, pero luego creo otro sitio a partir de la misma base de código (diferenciar su marca en función de rutas específicas), para eso, necesito agregar otra etiqueta GTM en mi complemento Ahora creo que no puedo agregar ninguna condición en el archivo gatsby-config (corríjame si me equivoco), entonces, ¿cómo manejar este caso? ¿Necesito agregar un script de inserción manualmente usando la función gatsby-SSR o hay alguna otra forma de resolverlo?
{ resolve: "gatsby-plugin-google-tagmanager", options: { id: config.gtm, includeInDevelopment: false, defaultDataLayer: { platform: "gatsby" }, enableWebVitalsTracking: true, }, }, Estoy pasando la etiqueta gtm según mi entorno de compilación a través de process.env
Su mejor oportunidad es usar variables de entorno para usar un identificador diferente para cada archivo.
Si cada proyecto activa una variable de entorno diferente, podrá usar una instancia diferente de GTM en cada compilación.
Después de agregar:
require("dotenv").config({ path: `.env.${process.env.GATSBY_ACTIVE_ENV}`, })Sus scripts pueden tener este aspecto:
"scripts": { "build-site-1": "GATSBY_ACTIVE_ENV=site1 gatsby build", "build-site-2": "GATSBY_ACTIVE_ENV=site2 gatsby build", }, Luego, gracias a .env.${process.env.GATSBY_ACTIVE_ENV} , puede definir .env.site1 y .env.site2 en la raíz de su proyecto para definir cada identificador GTM:
GTM_ID= 1234 Finalmente, en tu gatsby-config.js :
{ resolve: "gatsby-plugin-google-tagmanager", options: { id: process.env.GTM_ID, includeInDevelopment: false, defaultDataLayer: { platform: "gatsby" }, enableWebVitalsTracking: true, }, }, El GTM_ID será el activado por el comando de compilación, por lo que cada archivo tendrá cada configuración agnóstica.
Modifique el enfoque para que se ajuste a sus especificaciones, pero obtenga la idea de la separación lógica.