Я не могу получить доступ к моим переменным окружения в netlify - PullRequest
0 голосов
/ 16 ноября 2018

Я кодирую приложение с Гэтсби и Netlify .

Я использую Snipcart открытый ключ API через переменные окружения в моем html.js ( чтобы иметь тестовый ключ в dev и живой ключ в prod ).

import React from 'react'
import PropTypes from 'prop-types'

export default class HTML extends React.Component {
  render() {
    return (
      <html lang='en' {...this.props.htmlAttributes}>
        <head>
          <meta charSet='utf-8' />
          <meta httpEquiv='x-ua-compatible' content='ie=edge' />
          <meta
            name='viewport'
            content='width=device-width, initial-scale=1, shrink-to-fit=no'
          />
          {this.props.headComponents}

          {/* Snipcart */}
          <script
            defer
            src='https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js'
          />
          <script
            defer
            src='https://cdn.snipcart.com/scripts/2.0/snipcart.js'
            id='snipcart'
            data-api-key={process.env.SNIPCART_API_KEY}
          />
          <link
            href='https://cdn.snipcart.com/themes/2.0/base/snipcart.min.css'
            type='text/css'
            rel='stylesheet'
          />
        </head>
        <body {...this.props.bodyAttributes}>
          {this.props.preBodyComponents}
          <div
            key={'body'}
            id='___gatsby'
            dangerouslySetInnerHTML={{ __html: this.props.body }}
          />
          {this.props.postBodyComponents}
        </body>
      </html>
    )
  }
}

HTML.propTypes = {
  htmlAttributes: PropTypes.object,
  headComponents: PropTypes.array,
  bodyAttributes: PropTypes.object,
  preBodyComponents: PropTypes.array,
  body: PropTypes.string,
  postBodyComponents: PropTypes.array
}

Локально все работает с моими .env.development и env.production.

КогдаЯ создаю и обслуживаю приложение локально, у меня нет проблем.Переменные верны, когда я вызываю:

process.env.SNIPCART_API_KEY

В Netlify я указал в параметрах сборки свою производственную переменную:

SNIPCART_API_KEY = PROD_VALUE

Но когда сайт развертывается, переменная не учитываетсяучетная запись.(файлы .env находятся в .gitignore)

Я думаю, что что-то не так в настройках Netlify, но я не знаю, что.

Как получить доступ к этой переменной после развертывания сайта

1 Ответ

0 голосов
/ 17 ноября 2018

ОК после некоторого исследования, мне просто нужно добавить префикс моих переменных к GATSBY_.

Больше в документе: https://www.gatsbyjs.org/docs/environment-variables/#client-side-javascript

...