Как использовать AWS Amplify env vars в gatsby-config.js? - PullRequest
1 голос
/ 20 июня 2019

Я создаю приложение с GatsbyJS.Я использую переменные окружения в моем gatsby-config.js.Приложение GatsbyJS прекрасно работает локально, используя файлы .env. *.Однако при сборке из AWS Amplify он жалуется на недопустимое значение, полученное из переменных среды.Действительно, кажется, что при использовании process.env.MY_VAR внутри gatsby-config.js полученное значение шифруется (согласно документам AWSAmplify).

Я пытался с жестким кодированием значения env.var, чтобы подтвердить, что проблема была в шифровании.Я получаю ошибку: TypeError [ERR_INVALID_URL]: Invalid URL: 6fbaeed85a68.

, которая ясно указывает, что значение, полученное из process.env.HOSTNAME, равно 6fbaeed85a68, а не фактическое значение, которое я указал в веб-интерфейсе AWS Amplify.

Ниже приведен мой gatsby-js.config:

const path = require(`path`);
const queries = require('./src/utils/algolia');
const feedOptions = require('./src/utils/feed');
require('dotenv').config({
  path: `.env.${process.env.NODE_ENV}`,
});

module.exports = {
  siteMetadata: {
    siteUrl: new URL(process.env.HOSTNAME).href,
    title: `APP_TITLE`,
  },
  plugins: [
    {
      resolve: `gatsby-source-kentico-cloud`,
      options: {
        deliveryClientConfig: {
          projectId: process.env.KENTICO_PROJECT_ID,
        },
        languageCodenames: process.env.KENTICO_LANGUAGES.split(';'),
      },
    },
    {
      resolve: `gatsby-plugin-algolia`,
      options: {
        appId: process.env.GATSBY_ALGOLIA_APP_ID,
        apiKey: process.env.ALGOLIA_ADMIN_KEY,
        queries,
        chunkSize: 10000,
      },
    },
    `gatsby-plugin-react-helmet`,
    `gatsby-plugin-sitemap`,
    {
      resolve: `gatsby-plugin-manifest`,
      options: {
        name: `APP_NAME`,
        short_name: `APP_SHORT_NAME`,
        start_url: `/`,
        background_color: `#dbdcd1`,
        theme_color: `#1ad2eb`,
        display: `standalone`,
        icon: `src/images/logo-simple-transp-square-260x260.png`,
        include_favicon: true,
      },
    },
    `gatsby-plugin-offline`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `images`,
        path: path.join(__dirname, `src`, `images`),
      },
    },
    `gatsby-transformer-sharp`,
    `gatsby-plugin-sharp`,
    {
      resolve: `gatsby-plugin-sass`,
      options: {
        includePaths: ['src/styles/_variables'],
      },
    },
    {
      resolve: 'gatsby-plugin-mailchimp',
      options: {
        endpoint: process.env.MAILCHIMP_ENDPOINT,
      },
    },
    {
      resolve: 'gatsby-plugin-transition-link',
      options: {
        layout: require.resolve(`./src/layout`),
      },
    },
    {
      resolve: `gatsby-plugin-feed`,
      options: feedOptions,
    },
    {
      resolve: `gatsby-plugin-google-tagmanager`,
      options: {
        id: process.env.GTM_CODE,
        includeInDevelopment: false,
      },
    },
  ],
};

Я не понимаю, как я должен получить env vars.Любая помощь будет принята с благодарностью.

...